MC_MoveSuperImposed (FB) ¶ FUNCTION_BLOCK FINAL MC_MoveSuperImposed The function block causes an additional movement, on top of an ongoing (original) movement of the axis. The original movement is not aborted, instead the movement by the given distance is superimposed. If MC_MoveSuperImposed is active, a further aborting command on the same axis interrupts both commands, i.e. MC_MoveSuperImposed and the original command. A further buffered or blending command does _not_ interrupt the superimposed movement. The superimposed movement is continued in parallel. The function block MC_MoveSuperImposed must be called after the function block of the original movement. If a movement command is called after MC_MoveSuperImposed , the error SMC_MSI_INVALID_EXECUTION_ORDER is returned. If an instance of MC_MoveSuperImposed is active and a second instance of type MC_MoveSuperImposed is called, an error is reported by the second instance. If an instance of MC_MoveSuperImposed is active and is started again (with possibly different inputs) with a new rising edge on Execute , the active superimposed movement is aborted and replaced by the new superimposed movement, while the original motion function block remains active. The new distance is relative to the start of the first superimposed movement. This means that a new distance of 0 will result in a slowdown that cancels the effect of the first superimposed movement. To halt a superimposed movement, use the function block MC_HaltSuperImposed . While MC_HaltSuperImposed is active, no further superimposed movement can be started. In the standstill state of the axis, MC_MoveSuperImposed behaves like MC_MoveRelative . The Acceleration , Deceleration and Jerk inputs are additional values (not absolute values), which are added to the original movement. The original function block will always complete its movement within the same duration and with no consideration for any instance of MC_MoveSuperImposed acting at the same time. MC_MoveSuperImposed acts on the slave axis while MC_Phasing operates on the master axis. Example Use of MC_MoveSuperImposed The following illustration shows how the First instance of the type MC_MoveRelative is combined with the Second instance of the type MC_MoveSuperImposed . The signal curve of CommandAborted is not shown because the new command works on the same instance. The end position lies between 7000 and 8000 depending on the time behavior of the abortion of the second command set for MC_MoveSuperimposed . Use of MC_MoveSuperImposed and cam plate motion The double line of the slave Velocity indicates the effect on the Axis , which is in synchronized motion of cam plate execution and MC_MoveSuperimposed . The same applies to the associated slave position. Slave Velocity with MC_Superimposed : Slave Velocity under the influence of MC_SuperImposed . Slave Position with MC_Superimposed : Slave Position under the influence of MC_SuperImposed . InOut: Scope Name Type Comment Inout Axis AXIS_REF_SM3 Reference to the axis Input Execute BOOL A rising edge starts the superimposed movement. Abort BOOL Aborts an ongoing movement and resets all outputs. If set during an active movement, then the axis position will jump back to the position it would have had without the superimposed movement. Distance LREAL Additional distance in technical units [u]. If the FB interrupts itself, a superimposed movement aborted by a new superimposed movement, then the distance is relative to the start position of the interrupted superimposed movement. VelocityDiff LREAL Maximum velocity of the superimposed movement Acceleration LREAL Maximum acceleration of the superimposed movement Deceleration LREAL Maximum deceleration of the superimposed movement Jerk LREAL Maximum jerk of the superimposed movement Output Done BOOL TRUE : Distance is reached Busy BOOL TRUE : Function block is in operation. CommandAborted BOOL TRUE : Execution has been interrupted by another function block instance operating on Axis . Error BOOL TRUE : Error has occurred. ErrorID SMC_ERROR Error identification DistanceTravelled LREAL The superimposed distance travelled so far. Only set if Busy or Done. SuperImposedVelocity LREAL The current superimposed velocity. Only set if Busy or Done. SuperImposedAcceleration LREAL The current superimposed acceleration. Only set if Busy or Done.
Performance ¶ SMC_PerfStat (FunctionBlock) SMC_PerfTimerSum (Function) SMC_SeriesStat (FunctionBlock)
SMC3_BrakeStatus (FB) ¶ FUNCTION_BLOCK SMC3_BrakeStatus This function block reads the current status of a mechanical brake (if the brake is opened or closed). InOut: Scope Name Type Initial Comment Inout Axis AXIS_REF_SM3 Input bEnable BOOL FALSE TRUE : Activates FB, else inactive. Output bValid BOOL TRUE : At least one value since enabling has been received. bBusy BOOL TRUE : FB is not idle. bError BOOL FALSE TRUE : Error has occured within the function block. nErrorID SMC_ERROR 0 Error identification bBrakeClosed BOOL TRUE : Brake is closed.
SMC_AxisDiagnosticLog (FB) ¶ FUNCTION_BLOCK SMC_AxisDiagnosticLog This function block is designed for writing cyclically a set of parameter values belonging to one axis to a file. This output file is ideal for diagnosis purposes. As the writing of data on a data medium usually needs some time, this module stores the collected data in a buffer of size 10 kByte and the data will not be written until module action WriteToFile is called. This action call should be placed in a slower (ca. 50 ms) task of lower priority, in order to prevent the actual motion task as well as the motion itself from being disturbed. As soon as the buffer is exceeded, the module will create an error output. InOut: Scope Name Type Initial Comment Inout Axis AXIS_REF_SM3 Input bExecute BOOL Rising edge: Starts the execution of the function block. bCloseFile BOOL The module closes the file as soon as this input gets TRUE. sFileName STRING(255) File name (preceded by path). bSetPosition BOOL TRUE : The associated value of the axis to be written to the file. bActPosition BOOL TRUE : The associated value of the axis to be written to the file. bSetVelocity BOOL TRUE : The associated value of the axis to be written to the file. bActVelocity BOOL TRUE : The associated value of the axis to be written to the file. bSetAcceleration BOOL TRUE : The associated value of the axis to be written to the file. bActAcceleration BOOL TRUE : The associated value of the axis to be written to the file. bySeparatorChar BYTE 9 ASCII-Code of the letter, which is to be written between two values of same date. sRecordSeparatorString STRING(3) ‘$R$N’ String to be written at the end of a date. eMode SMC_LOGGERMODE LOG_CONTINUOUS LOG_CONTINUOUS : Continuous logging into file. LOG_AT_CLOSE : Continuous logging into buffer (10kByte). When bCloseFile is set, the buffer content is written to file. Output bDone BOOL TRUE : Logging has been terminated and file is closed. bBusy BOOL FALSE TRUE : Execution of function block has not been finished. bError BOOL TRUE : Error has occurred within the function block. ErrorID SMC_ERROR Error identification bRecording BOOL FALSE TRUE : Module records. Structure: WriteToFile (Action)
SMC_CheckAxisCommunication (FB) ¶ FUNCTION_BLOCK SMC_CheckAxisCommunication Returns the current communication state of an axis. InOut: Scope Name Type Comment Inout Axis AXIS_REF_SM3 Input bEnable BOOL TRUE : Starts the check Output bValid BOOL TRUE : The outputs are valid bError BOOL TRUE : Error has occurred. eErrorID SMC_ERROR Error identification bOperational BOOL TRUE : The communication state is operational (100). eComState SMC_CommunicationState The communication state, abstracted as an enumeration. wComState WORD The raw value of parameter 1013 ( wCommunicationState )
SMC_CheckLimits (FB) ¶ FUNCTION_BLOCK SMC_CheckLimits This function block may be employed for checking whether the current set points of the drive exceed the maximum values configured in the controller. The result of the check will be indicated by output bLimitsExceeded . InOut: Scope Name Type Initial Comment Inout Axis AXIS_REF_SM3 Input bEnable BOOL TRUE : Starts the execution of function block. bCheckVel BOOL TRUE TRUE : Checks the velocity. bCheckAccDec BOOL FALSE TRUE : Checks the set acceleration and the set deceleration. Output bBusy BOOL TRUE : Execution of function block has nor been finished yet. bError BOOL TRUE : Error has occurred within the function block. iErrorID SMC_ERROR Error identification bLimitsExceeded BOOL TRUE : The current set points exceed the limits which are defined within the PLC configuration and stored within AXIS_REF_SM3 ( fSWMaxVelocity , fSWMaxAcceleration or fSWMaxDeceleration ).
SMC_GetMaxSetAccDec (FB) ¶ FUNCTION_BLOCK SMC_GetMaxSetAccDec This function block may be employed to measure the maximum absolute value of acceleration (or deceleration) of an axis. Measuring will be done if bEnable is TRUE , and will be reset to 0, if bEnable is FALSE . With dwTimeStamp you can provide a call counter, which is latched output in dwTimeAtMax with a new maximum value. InOut: Scope Name Type Initial Comment Inout Axis AXIS_REF_SM3 Input bEnable BOOL FALSE TRUE : Starts execution of function block. dwTimeStamp DWORD Optional time stamp input; can be used to find out when the maximum has occured. Output bValid BOOL FALSE TRUE : Parameter is available. bBusy BOOL TRUE : Execution of the function block has not been finished. fMaxAcceleration LREAL 0 Maximum acceleration in [u/s²] dwTimeAtMax DWORD 0 Maximum value of dwTimeStamp
Direct ¶ SMC_FollowPosition (FunctionBlock) SMC_FollowPositionVelocity (FunctionBlock) SMC_FollowSetValues (FunctionBlock) SMC_FollowVelocity (FunctionBlock) SMC_SetTorque (FunctionBlock) SMC_TrackAxis (FunctionBlock) SMC_TrackSetValues (FunctionBlock)
MC_AccelerationProfile (FB) ¶ FUNCTION_BLOCK MC_AccelerationProfile This function block is designed for commanding a time-acceleration locked motion profile. Note If Axis does not reach standstill after this movement and no subsequent movement is commanded in the same cycle when Done is set, then Axis switches to the errorstop state and reports error SMC_MOVING_WITHOUT_ACTIVE_MOVEMENT . Warning MC_MoveSuperimposed is not supported on top of MC_AccelerationProfile . Forecasts that are set up by SMC_SetForecast are not supported. InOut: Scope Name Type Initial Comment Inout Axis AXIS_REF_SM3 Reference to axis TimeAcceleration MC_TA_REF Reference to time/acceleration description Input Execute BOOL Rising edge: Starts the execution of the function block. ArraySize INT Dimension of the array AccelerationScale LREAL 1 Overall acceleration scaling factor Offset LREAL Overall acceleration offset ([u/s²]) Output Done BOOL TRUE : Profile has been completed. Busy BOOL TRUE : Execution of the function block has not been finished. CommandAborted BOOL TRUE : The command has been aborted by another command. Error BOOL TRUE : Error has occurred within the function block. ErrorID SMC_ERROR Error identification
MC_Halt (FB) ¶ FUNCTION_BLOCK MC_Halt This function block stops the referenced axis in a controlled manner. If actions of other function blocks are running at this time, the actions are aborted. The axis enters the discrete_motion state until the velocity 0 is reached. If the Done output of MC_Halt is set, the state of the axis changes to standstill . As long as MC_Halt is active, a new motion command can be issued that interrupts the execution of MC_Halt . Unlike MC_Stop , MC_Halt can also be overwritten. Note Overwriting the execution of MC_Halt A driverless vehicle detects an obstacle and is stopped with MC_Halt . The obstacle is removed before the vehicle comes to a standstill . By issuing a new motion command, MC_Halt is aborted and the trip is resumed without having come to a standstill . InOut: Scope Name Type Initial Comment Inout Axis AXIS_REF_SM3 Input Execute BOOL FALSE TRUE : Starts execution. Deceleration LREAL 0 Modulo value of the deceleration in [u/s²]. Jerk LREAL 0 Jerk in [u/s³] Output Done BOOL FALSE TRUE : Velocity 0 has been achieved. Busy BOOL FALSE TRUE : Function block is in operation. CommandAborted BOOL FALSE TRUE : Execution has been interrupted by another function block instance operating on the axis. Error BOOL FALSE TRUE : Error has occurred. ErrorID SMC_ERROR 0 Error identification