SMC_SetRampType (FB) ¶ FUNCTION_BLOCK SMC_SetRampType Sets the ramp type of an axis to a new value. Can only be used when the axis is in state standstill or power_off . The FB executes synchronously on the rising edge of bExecute . After the call, either bDone or bError are set. InOut: Scope Name Type Initial Comment Inout Axis AXIS_REF_SM3 Axis Input bExecute BOOL FALSE eRampType SMC_RAMPTYPE trapez Defines the new ramp type. Output bDone BOOL FALSE TRUE : Success bError BOOL FALSE TRUE : Error has occured within function block. eErrorID SMC_ERROR SMC_NO_ERROR Error identification
SMC_VIRTUAL_AXIS (FB) ¶ FUNCTION_BLOCK SMC_VIRTUAL_AXIS This function block has been created in order to use a virtual axis without the need to add a virtual axis device to the “Softmotion general axis pool”. Use the output variable Axis of type AXIS_REF_VIRTUAL_SM3 instead of a virtual axis. Axis is being initialized by once calling this FB with the desired axis properties (the default values correspond to the virtual axis device description). Calling this FB again does not have any effect (apart from changing the input variables): Axis won’t be touched again. InOut: Scope Name Type Initial Comment Input wDriveID WORD 1 Identifier of drive iMovementType SMC_MOVEMENTTYPE ANY_TO_INT(SMC_AXIS_TYPE.finite) fPositionPeriod LREAL 360.0 Length of Period for modulo drives in technical units [u] eRampType SMC_RAMPTYPE trapez Velocity ramp fSWMaxVelocity LREAL Maximum velocity (software limit) in [u/s] fSWMaxAcceleration LREAL Maximum acceleration (software limit) in [u/s²] fSWMaxDeceleration LREAL Maximum deceleration (software limit) in [u/s²] fSWMaxJerk LREAL Maximum jerk (software limit) in [u/s³] fSWMaxTorque LREAL FPU.GetLRealSpecialVal(FPU.ESpecial_FP_Value.PosInf) Maximum torque or force (software limit) in [Nu] or [N] fSWLimitPositive LREAL 1000.0 Position limit in positive direction in techn. units [u] fSWLimitNegative LREAL 0.0 Position limit in negative direction in techn. units [u] fSWLimitDeceleration LREAL 0 Deceleration [techn. units/s²] which the system will brake with in case of a software limit. bSWLimitEnable BOOL FALSE TRUE : Enables software end switches. fSWErrorMaxDistance LREAL 0 Maximum deceleration distance for ramping down in case of an error [u]. Output Axis AXIS_REF_VIRTUAL_SM3 bError BOOL
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)
MC_Power (FB) ¶ FUNCTION_BLOCK MC_Power MC_Power is designed for controlling the power stage (“on” or “off”). Note The inputs are only processed if Enable is TRUE . A call of MC_Power with bRegulatorOn = FALSE sets nAxisState of the referenced axis always into state (disabled) power_off . Then the axis isn’t ready for motion. A call of MC_Power with bRegulatorOn = TRUE on a disabled axis sets its nAxisState to standstill if there is no error on the axis. If an error is detected, the state of the axis is set to errorstop . If the inputs Enable , bRegulatorOn and bDriveStart are TRUE but the output Status remains FALSE for a long time, a possible reason is a hardware problem with the power stage of the drive. If power fails (also during operation), nAxisState of the referenced axis is set to errorstop . InOut: Scope Name Type Comment Inout Axis AXIS_REF_SM3 Reference to axis Input Enable BOOL TRUE : Enables the execution of the function block. bRegulatorOn BOOL TRUE : Enables the power stage. bDriveStart BOOL TRUE : Disables the quickstop mechanism. Output Status BOOL TRUE : Axis is ready to move. bRegulatorRealState BOOL TRUE : The power stage has been switched on. bDriveStartRealState BOOL TRUE : Drive is not blocked by the quickstop mechanism. Busy BOOL TRUE : Execution of the function block has not been finished yet. Error BOOL TRUE : Error has occurred within the function block during execution. ErrorID SMC_ERROR Error identification
MC_Reset (FB) ¶ FUNCTION_BLOCK MC_Reset This function block brings an axis from state errorstop to state standstill by resetting (acknowledging) all errors. Both errors of the drive and software errors are reset. When called in a state other than errorstop , the error SMC_R_NO_ERROR_TO_RESET is returned by the function block. InOut: Scope Name Type Initial Comment Inout Axis AXIS_REF_SM3 Reference to axis Input Execute BOOL Rising edge: Starts the execution of the function block. Output Done BOOL TRUE : Reset has been executed. Busy BOOL TRUE : Execution of the function block has not been finished. Error BOOL TRUE : Error has occurred within the function block. ErrorID SMC_ERROR SMC_NO_ERROR Error identification
MC_SetPosition (FB) ¶ FUNCTION_BLOCK MC_SetPosition This function block shifts the coordinate system of an axis. Both the set and actual position of the axis are offset by the same amount. No movement is caused by this operation. This recalibration can be used, for instance, for referencing an axis. The function block can be called while the axis is moving. In this case, the resulting movement of the drive is not affected. The same set positions in increments are sent to the drive as if MC_SetPosition had not been called. Only the set positions in technical units (fSetPosition) are shifted. Important ABSOLUTE (mode = FALSE) means that the new axis position is the value of input Position . RELATIVE (mode = TRUE) means that the new axis position is the sum of the current axis position and the value of input Position . Note This function block does not affect the trajectory of already commanded movements. However, the target position of absolute movements commanded after MC_SetPosition will be considered relative to the shifted coordinate system. InOut: Scope Name Type Comment Inout Axis AXIS_REF_SM3 Reference to axis Input Execute BOOL Rising edge: Starts the execution of the function block. Position LREAL Position unit [u] (means ‘Distance’ if Mode = RELATIVE) Mode BOOL TRUE = RELATIVE, FALSE = ABSOLUTE Output Done BOOL TRUE : The position has been shifted. Busy BOOL TRUE : Execution of function block is not finished yet. Error BOOL TRUE : An error has occurred within the function block. ErrorID SMC_ERROR Error identification
SMC3_BrakeControl (FB) ¶ FUNCTION_BLOCK SMC3_BrakeControl This function block, if supported by the drive and its SoftMotion driver, it determines the behaviour of a mechanical brake. By use of this function block in the application the brake can be closed or opened or it can be switched to automatic mode, in which the opening and closing is handled by the drive itself. The function can be used if it is not possible to use the automatic mode due to special requirements (i.e. manual move of a component) of the application where the brake must be controlled manually. The function block does not take on any further monitoring or other intelligent functions (i.e. time delayed opening of the brake). InOut: Scope Name Type Initial Comment Inout Axis AXIS_REF_SM3 Input bExecute BOOL FALSE TRUE : Activates FB, else inactive. eSetBrake SMC3_BrakeSetState SMC_BRAKE_AUTO Sets the brake state. fTimeOut LREAL If the time since enabling the FB is larger than this value, bTimeOut is set; this mechanism is deactivated, if fTimeOut = 0. Output bDone BOOL TRUE : Signal has been sent to the drive bBusy BOOL TRUE : FB is not idle. bError BOOL FALSE TRUE : Error has occured within the function block. nErrorID SMC_ERROR 0 Error identification
Globals ¶ LibParams (ParamList) SMC_Basic_Ranges (GVL) SMC_DriveBasic_GlobalVariables (GVL) SM_PLCOpen_GlobalVariables (GVL)
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