SMC_ObjectSplitter (FB) ¶ FUNCTION_BLOCK SMC_ObjectSplitter This function can be used if a velocity optimizer (like SMC_LimitDynamics ) is applied to the queue. The limitation of SMC_LimitDynamics always affects a complete object. This means that, the smaller the objects, the better the result of the limitiation. Objects without geometrical expansion (like M-functions) or geometrical curvature (like straight lines) remain unchanged. With eMode, it is defined, how the division is done: if FIX is set, every curved object is divided in so many objects as defined in dSplittingParameter . if LENGTH is set, every object is divided so, that it has the length dSplittingParameter at most. InOut: Scope Name Type Initial Comment Input bExecute BOOL Execution starts on the rising edge. bAbort BOOL bAppend BOOL poqDataIn POINTER TO SMC_OUTQUEUE Input path queue eMode SMC_OBJECTSPLITTERMODE Splitting mode dSplittingParameter LREAL 1 Parameters for eMode nSizeOutQueue UDINT The size of pbyBufferOutQueue in bytes pbyBufferOutQueue POINTER TO ARRAY [0..0] OF SMC_GEOINFO Output bDone BOOL This output will be set to TRUE as soon as the input path has been processed completely. bBusy BOOL TRUE , while execution of function block is not finished bError BOOL It signals that an error has occurred within the function block wErrorID SMC_ERROR Error identification poqDataOut POINTER TO SMC_OUTQUEUE Structure: SMC_CalcAddAxes (Action) SMC_CalcOrientationAxes (Action) SMC_DoBeforeLeave (Action) SMC_InitAction (Action)
SMC_RecomputeABCSlopes (FB) ¶ FUNCTION_BLOCK SMC_RecomputeABCSlopes Recomputes the slopes of the additional axes A,B,C so that a smooth movement results. The slope at the end of elemnt i is set as (AddAxisValue(i+1) - AddAxisValue(i-1)) / (ElementLength(i) + ElementLength(i+1)). At a stop, the slope is either set to zero, or set so that the interpolation of the additional axis is linear, depending on the input modeAtStop . InOut: Scope Name Type Initial Comment Input bExecute BOOL Starts on the rising edge poqDataIn POINTER TO SMC_OUTQUEUE Input path queue nSizeOutQueue UDINT The size of pbyBufferOutQueue in bytes pbyBufferOutQueue POINTER TO ARRAY [0..0] OF SMC_GEOINFO The buffer for the output queue dAngleTol LREAL 0.001 The angle tolerence (in angular degrees) to detect stops between elements modeNoStop SMC_ABC_SLOPES_NO_STOP Determines how the slope is set at element transitions without a stop. The default is SET_SMOOTH_CARDINAL. modeAtStop SMC_ABC_SLOPES_AT_STOP Determines how the slope is set at element transitions with a stop. The default, due to compatibility with older versions, is SET_ZERO. Output bDone BOOL Indicates the entire input path has been processed bBusy BOOL Indicates the function block is still busy processing bError BOOL An error has occurred wErrorID SMC_ERROR Error-ID poqDataOut POINTER TO SMC_OUTQUEUE The queue for the output path Structure: DoBeforeLeave (Action)
SM3_Drive_ETC_Parker_SBC Library Documentation ¶ Company 3S - Smart Software Solutions GmbH Title SM3_Drive_ETC_Parker_SBC Version 4.14.0.0 Categories Intern|SoftMotion Author None Placeholder SM3_Drive_ETC_Parker_SBC Description 1 ¶ SoftMotion driver for Parker TPDM, SLVDN, TWIN-N, and Hi-drive Contents: ¶ AXIS_REF_ETC_PARKER_SBC (FunctionBlock) ConvertReceivedDriveParameter (Method) ConvertTransmitDriveParameter (Method) DriverName (Property) DriverVersion (Property) GetMappedDriveParameter (Method) GetStandardConfigParams (Method) ReadAndProcessSpecificInput (Method) SMC3_AxisReadyForMotion (Method) state-machine Constants (GVL) Helper CreatePicoPLCProgram (Function) GetParamBool (Function) GetParamDWord (Function) GetParamInt (Function) GetParamWord (Function) IsInputSet (Function) LD_Input (Function) Pico_END (Function) Pico_Inst (Function) Pico_LD (Function) Pico_LDN (Function) Pico_OUT (Function) Pico_SET (Function) SMC3_ETC_Parker_SBC SMC3_ETC_Parker_SBC_ConfigurationPhase (FunctionBlock) Indices and tables ¶ 1 Based on SM3_Drive_ETC_Parker_SBC.library, last modified 10.03.2023, 13:37:30. LibDoc 4.4.0.0-b.27 The content file SM3_Drive_ETC_Parker_SBC.clean.json was generated with CODESYS V3.5 SP16 Patch 3 on 10.03.2023, 13:37:31.
SMC_ReduceVelEndAtCorner (FB) ¶ FUNCTION_BLOCK SMC_ReduceVelEndAtCorner Reduces the end velocity if there is a corner between two consecutive path elements. A corner is a difference in tangents or a difference in the velocity of the additional axes A/B/C. The velocity is reduced linearly from the programmed velocity to zero as the angle between the tangents goes from dMinAngleToAct to dAngleTol . InOut: Scope Name Type Initial Comment Input bExecute BOOL Starts on the rising edge poqDataIn POINTER TO SMC_OUTQUEUE Input path queue nSizeOutQueue UDINT The size of byBufferOutQueue in bytes pbyBufferOutQueue POINTER TO ARRAY [0..0] OF SMC_GEOINFO The buffer for the output queue dAngleTol LREAL 0.1 The maximum angle tolerance (in angular degrees). If the actual angle between two elements is equal to or larger than this value, the end velocity is reduced to zero. Note Use the same value here as for input dAngleTol of SMC_CheckVelocities . The value must be positive. dMinAngleToAct LREAL The minimum angle (in angular degrees). If the actual angle between two elements is not greater than this value, the end velocity is not reduced. The value must be less than dAngleTol and non-negative. dMaxVelDifferenceABC LREAL 1 The maximum allowed velocity difference (or velocity jump) of the additional axes A,B,C between two consecutive elements. The end velocity will be reduced until the actual velocity difference is at most this value. The value must be non-negative. Output bDone BOOL Indicates the entire input path has been processed bBusy BOOL Indicates the function block is still busy processing bError BOOL An error has occurred wErrorID SMC_ERROR Error-ID poqDataOut POINTER TO SMC_OUTQUEUE The queue for the output path Structure: DoBeforeLeave (Action)
AXIS_REF_ETC_PARKER_SBC.ConvertReceivedDriveParameter (METH) ¶ METHOD ConvertReceivedDriveParameter : BOOL InOut: Scope Name Type Return ConvertReceivedDriveParameter BOOL Input diParameterNumber DINT pdwValue POINTER TO DWORD usiBitLength USINT Output fValue LREAL bUseDword BOOL
SMC_RoundPath (FB) ¶ FUNCTION_BLOCK SMC_RoundPath SMC_RoundPath rounds corners between adjacent elements by inserting circular arc segments. See SMC_SmoothPath for an alternative corner smoothing with splines. The distance between the corner and the point at which the two adjacent elements are cut is the minimum of half the length of the first element, half the length of the second element and the sum of dRadius and D . If the sum of input variable dRadius and G-code word D is 0, then no rounding is done. If one of the two elements is a G0 element, then no rounding is done. Details All SMC_GEOINFO elements of the input structure SMC_OUTQUEUE are checked one after the other. The round-path functionality is executed for all elements between G52 and G50. M-function at a rounded corner: If there is a M-function at the corner that will be rounded then the M-function remains but is moved to the end of the rounded corner. This behavior is consistent with the behavior of SMC_SmoothPath . H-function at a rounded corner: If there is an H-function between the first cut point and the corner (1), the point is moved to the rounded path (1’). The distance to the start point remains the same. If there a H-function between the corner and the second cut point (3) the point is also moved to the rounded path (3’), so that the distance to the end point remains the same. The position of the moved H-functions is limited so that they don’t cross the center of rounded path. Otherwise the order of the H-functions might change (2’, 4’). Example N000 G01 X10 Y0 F100 N010 G01 X10 Y10 N020 G52 D2 (rounding with distance 2 on) N030 G01 X20 Y10 N040 G01 X20 Y0 N050 G01 X30 Y0 D5 (cut distance 5) N060 G01 X30 Y10 N070 G01 X40 Y10 N080 G50 (rounding off) N090 G01 X40 Y0 N100 G01 X50 Y0 The first rounded corner is the one after sentence N020 at position X20 Y10. The cut distance is changed from 2 to 5 in sentence N050 and is valid from there. Rounding is turned off at position X40 Y10. A rounding element always uses the tool correction information (i.e. lengths and diameter) of the preceding element. InOut: Scope Name Type Initial Comment Input bExecute BOOL While TRUE , the function block is active bAbort BOOL If TRUE , the current processing of this function block is aborted bAppend BOOL As long as this input is set to FALSE , the DataOutQueue will be cleared at each reset. As long as it is set to TRUE , newly incoming data will be written to the end of DataOutQueue. poqDataIn POINTER TO SMC_OUTQUEUE Input path queue dRadius LREAL This input variable contains the value, which – added to the corresponding ToolRadius-value of the SMC_GEOINFO object (G-code word D) – defines the (maximum) distance to a corner, at which the particular objects will be cut and replaced by an arc (see above). This value can be modified online. Thus it is possible to predefine offline (using the D-word) and to change online. Default: 0 dAngleTol LREAL 0.001 This input prescribes the value of angle tolerance, up to which a path corner is not rounded. nSizeOutQueue UDINT This variable contains the size of the data buffer, the list of SMC_GEOINFO structure objects will be written to. This buffer must be able to hold at least five SMC_GEOINFO objects. Otherwise, the function block will not execute any actions at all. Its size may be predefined, but may be modified later only during a reset. It is recommended to create the buffer as described by the example below: ExampleBuf: Array[1..50] of SMC_GeoInfo The correct buffer size will then be retrieved by use of the operator sizeof(ExampleBuf) . pbyBufferOutQueue POINTER TO ARRAY [0..0] OF SMC_GEOINFO This input must point to the first byte of the memory area that is allocated for the SMC_OUTQUEUE structure. This area must be at least as big as defined in nSizeOutQueue . Typically the allocation of the memory buffer is done in the declaration part of the IEC-program by defining an array of SMC_GEOINFO (e.g. BUF: ARRAY[1..50] OF SMC_GEOINFO ; for a buffer that can store 50 path elements). The value may be predefined, but may be modified later on only during a reset. Output bDone BOOL This variable will be set to TRUE as soon as the input data from poqDataIn has been processed completely. Thereafter, the module will not perform any further actions until it gets reset. If input bExecute is FALSE , bDone will be reset to FALSE . bBusy BOOL TRUE , while execution of function block is not finished bError BOOL Signals, that an error has occurred within the function block wErrorID SMC_ERROR Error identification poqDataOut POINTER TO SMC_OUTQUEUE This output variable points on the SMC_OUTQUEUE structure, which manages the rounded SMC_GEOINFO objects. Structure: SMC_DoBeforeLeave (Action) SMC_RoundPathInit (Action)
AXIS_REF_ETC_PARKER_SBC.ConvertTransmitDriveParameter (METH) ¶ METHOD ConvertTransmitDriveParameter : BOOL InOut: Scope Name Type Return ConvertTransmitDriveParameter BOOL Input diParameterNumber DINT fValue LREAL bUseDword BOOL pdwValue POINTER TO DWORD
AXIS_REF_ETC_PARKER_SBC.DriverName (PROP) ¶ PROPERTY DriverName : STRING(16)
SM3_Drive_ETC_KEB_ITMotorB Library Documentation ¶ Company : CODESYS Title : SM3_Drive_ETC_KEB_ITMotorB Version : 4.16.0.0 Categories : Intern|SoftMotion Author : CODESYS Development GmbH Placeholder : SM3_Drive_ETC_KEB_ITMotorB Description [ 1 ] ¶ SoftMotion driver for KEB_ITMotorB over ETC Contents: ¶ AXIS_REF_ETC_KEB_ITMotorB (FunctionBlock) ConfigurationObjects DriverName (Property) DriverVersion (Property) ParameterAccess state-machine ENCODER_REF_ETC_KEB_ITMotorB (FunctionBlock) ConvertReceivedDriveParameter (Method) ConvertTransmitDriveParameter (Method) GetMappedDriveParameter (Method) Library Information GetLibVersion (Function) GetLibVersionNumber (Function) IsLibReleased (Function) Indices and tables ¶ [ 1 ] Based on SM3_Drive_ETC_KEB_ITMotorB.library, last modified 13.12.2023, 09:18:42. LibDoc 4.4.0.0-b.37 The content file SM3_Drive_ETC_KEB_ITMotorB.clean.json was generated with CODESYS V3.5 SP16 Patch 3 on 13.12.2023, 09:18:52.
SMC_CheckVelocities (FB) ¶ FUNCTION_BLOCK SMC_CheckVelocities This module checks the track speed of the particular path segments. If the OutQueue has not been created by the editor, but by the IEC program (e.g. by SMC_NCDecoder ), this module has to be called straight before each call to the interpolator. The main task of this function is to check the path for sharp bends and to reduce the velocity to zero at these bends. InOut: Scope Name Type Initial Comment Input bExecute BOOL Execution starts on the rising edge. bAbort BOOL If TRUE , the current processing of this function block is aborted poqDataIn POINTER TO SMC_OUTQUEUE This input points to the SMC_OUTQUEUE structure object, which describes the SMC_GEOINFO objects of the path; typically it points to the output poqDataOut of the preceding module (e.g. SMC_NCDecoder / SMC_SmoothPath ). dAngleTol LREAL 0.001 This input describes the tolerance angle (angle leeway) up to which at a sharp bend of the path no stop shall be executed. bCheckAddAxVelJump BOOL dMaxAddAxVelDifference LREAL see SMC_SmoothPath Output bBusy BOOL TRUE , while execution of function block is not finished and the process on the path object is still running bError BOOL Signals, that an error has occurred within the function block wErrorID SMC_ERROR Error identification poqDataOut POINTER TO SMC_OUTQUEUE This output points on the SMC_OUTQUEUE structure object, which contains the path with the permissible velocity values and should now be fed to the interpolator. Structure: DoBeforeLeave (Action)