SMC_LimitCircularVelocity (FB) ¶ FUNCTION_BLOCK SMC_LimitCircularVelocity This function block limits the path velocities of circular elements depending on the radius. For a more general function block that limits the path velocity for all kinds of path elements, please see SMC_LimitDynamics . In order to limit the acceleration to a prescribed value, the velocity of the arc at the transition sqrt(a*r) must not be exceeded. The function block controls the transition between two elements (line on circular arc, circular arc on line or circular arc on circular arc) and adapts the end velocity of the first element so that the acceleration jump will not exceed the value dMaxAccJump . Furthermore, the function block limits the acceleration in X and Y to the value dMaxAcc . InOut: Scope Name Type Initial Comment Input bExecute BOOL FALSE Execution starts on the rising edge. bAbort BOOL FALSE If TRUE , the current processing of this function block is aborted bAppend BOOL FALSE As long as this input remains FALSE , poqDataOutQueue will be cleared at each reset. As long as it remains TRUE , newly incoming data will be written to the end of the DataOutQueue. poqDataIn POINTER TO SMC_OUTQUEUE SMC_NULL This variable points to the SMC_OUTQUEUE structure object, which contains the SMC_GEOINFO objects of the path; typically it points on the output poqDataOut of the preceding module (e.g. the SMC_NCDecoder ). dMaxAcc LREAL 0 This input variable gives the maximum acceleration value permissible for circular arcs. A value equal to 0 will cause no check to be done. dMaxAccJump LREAL 0 This input variable gives the maximum acceleration jump for a transition of two objects. A value equal to 0 will cause no check to be done. nSizeOutQueue UDINT 0 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, SMC_LimitCircularVelocity 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 SMC_NULL 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 FALSE 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 FALSE TRUE while execution of function block is not finished bError BOOL FALSE Signals that an error has occurred within the function block wErrorID SMC_ERROR SMC_NO_ERROR Error identification poqDataOut POINTER TO SMC_OUTQUEUE SMC_NULL This output points on the SMC_OUTQUEUE structure managing the new SMC_GEOINFO objects. Structure: SMC_DoBeforeLeave (Action) SMC_LimitCircularVelocityInit (Action)
ENCODER_REF_ETC_KEB_ITMotorB.GetMappedDriveParameter (METH) ¶ METHOD GetMappedDriveParameter : BOOL InOut: Scope Name Type Input bRead BOOL diParameterNumber DINT Return GetMappedDriveParameter BOOL Output diDriveParameterNumber DINT usiDataLength USINT
Library Information ¶ GetLibVersion (Function) GetLibVersionNumber (Function) IsLibReleased (Function)
GetLibVersion (FUN) ¶ FUNCTION GetLibVersion : VERSION This function has been automatically generated from the project information. InOut: Scope Name Type Return GetLibVersion VERSION
SMC_LimitDynamics (FB) ¶ FUNCTION_BLOCK SMC_LimitDynamics The function block reduces the velocity and acceleration/deceleration of the path so that the resulting velocities, accelerations and decelerations of the cartesian and additional axes do not exceed the input values dMaxVel , dMaxAcc and dMaxDec . Note SMC_LimitDynamics was renamed and was previously named SMC_LimitAddAxisDynamics . Using SMC_LimitDynamics Assignment of input poqDataIn Typically, poqDataOut of the previous function block is fed to the input poqDataIn . That can be an instance of the function block SMC_NCDecoder or SMC_SmoothPath . Allocating memory for the preprocessing of the path elements If the function block is executed, memory is needed, in which the processing elements are copied. The memory area must be able to hold at least five SMC_GEOINFO objects. If the memory is too small, the function block performs no actions. The memory is declared in the IEC program as an array of objects of type SMC_GEOINFO . PROGRAM Path VAR buf2 : ARRAY [1..50] OF SMC_GeoInfo ; END_VAR Feeding the allocated memory area The size of the memory is determined by the operator SIZEOF in the implementation of the IEC program and is fed to the input nSizeOutQueue . The address of the memory is defined with the operator ADR and is fed to the input pbyBufferOutQueue . InOut: Scope Name Type Comment Input bExecute BOOL Execution starts on the rising edge. bAbort BOOL TRUE : Aborts the processing of the function block bAppend BOOL FALSE : Starts emptying poqDataOut on a rising edge at bExecute poqDataIn POINTER TO SMC_OUTQUEUE Pointer to data of structure SMC_OUTQUEUE containing the path objects of typ SMC_GEOINFO . wAxis WORD Bit field of the axes on that the operation is executed: X: Bit 0 Y: Bit 1 Z: Bit 2 A: Bit 3 B: Bit 4 C: Bit 5 P: Bit 6 Q: Bit 7 U: Bit 8 V: Bit 9 W: Bit 10 Example: 16#0104 causes limitation of Z and U dMaxVel LREAL Maximum speed value for the defined axes dMaxAccDec LREAL Maximum acceleration or deceleration value for the defined axes bIncludePathSettings BOOL TRUE : Limits the velocity, acceleration or deceleration (F, E +, E-) on the values defined in dMaxVel and dMaxAccDec nSizeOutQueue UDINT Size in bytes of the data buffer pbyBufferOutQueue , in which the path elements are copied. If the value is set, it may not be changed except after a reset. pbyBufferOutQueue POINTER TO ARRAY [0..0] OF SMC_GEOINFO Pointer to the first byte of the storage area created for the path elements. If the value is set, it may not be changed except after a reset. bStrictlyHoldAccDecABC BOOL If TRUE , the maximal accelerations and decelerations of A, B, C are strictly held. Otherwise, we use a heuristic that may lead to quicker profiles, but occasionally violate the A/B/C-acceleration-limit, if A/B/C move quickly while there is an ac- / deceleration on the path. Output bDone BOOL TRUE : input date from poqDataIn have been precessed fully. After that, the function block performs no action until a reset is detected. When bExecute is set to FALSE , bDone is reset to FALSE . bBusy BOOL TRUE : Function block in execution bError BOOL TRUE : Error has occurred wErrorID SMC_ERROR Error identification poqDataOut POINTER TO SMC_OUTQUEUE Pointer to data of structure SMC_OUTQUEUE containing the path elements of typ SMC_GEOINFO . Structure: SMC_AdaptAddAxes (Action) SMC_AdaptOrientationAddAxes (Action) SMC_AdaptToMaxAcceleration (Action) SMC_AdaptToMaxVelocity (Action) SMC_DoBeforeLeave (Action) SMC_LimitDynamicsInit (Action)
GetLibVersionNumber (FUN) ¶ FUNCTION GetLibVersionNumber : DWORD This function has been automatically generated from the project information. InOut: Scope Name Type Return GetLibVersionNumber DWORD
IsLibReleased (FUN) ¶ FUNCTION IsLibReleased : BOOL This function has been automatically generated from the project information. InOut: Scope Name Type Return IsLibReleased BOOL
SMC_NCDecoder (FB) ¶ FUNCTION_BLOCK FINAL SMC_NCDecoder This function block is used to convert a CNC program (Din 66025, G-code), into a list of SMC_GEOINFO objects. In each cycle, one line of the program is decoded. Note The maximum number of M-functions in a row is 64. If the G-Code contains more than 64 M-functions in a row, the error SMC_DEC_OUTQUEUE_RAN_EMPTY occurs. This restriction can be circumvented by inserting a G75 previous to the first M-function of the sequence. G4-elements count as M-functions, too. Note As from V3.5 SP2 of the programming system, iLineNumberDecoded stores the just coded 0-based line number of the CNC file. In earlier versions, in particular CODESYS V2.3, the sentence number (= value of the N-word) had been stored there. Note This function block has been superseeded by SMC_NCInterpreter and is kept only for compatibility. It is recommended to use SMC_NCInterpreter (along with SMC_ReadNCFile2 ), which has additional features like mathematical expressions or sub programs in g-code InOut: Scope Name Type Initial Comment Inout ncprog SMC_CNC_REF This variable holds the CNC program. The program may have been created by the IEC-program or within the CNC-Editor. Input bExecute BOOL Execution starts on the rising edge. bAbort BOOL If TRUE , the current processing of this function block is aborted bAppend BOOL If TRUE , a rising edge of bExecute won’t lead to a reset of the out-queue. Instead, newly incoming data will be written to the end of the out-queue. bStepSuppress BOOL When this input is TRUE , lines of the CNC program starting with ‚/’ will be ignored. Otherwise they will be processed. piStartPosition SMC_POSINFO Start position of the path. Only the position of the axes (piStartPosition.dX/dY/dZ/dA/dB/dC/dA1/…/dA6) is used, the other members of piStartPosition are ignored. vStartToolLength SMC_Vector3d Start tool length. 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 appropriate 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. bEnableSyntaxChecks BOOL Turns on syntax checks that will detect invalid G-code and stop with an error in this case. It is recommended to use the syntax checks. eOriConv SMC_ORI_CONVENTION SMC_ORI_CONVENTION.ADDAXES Defines the way the orientation in the A/B/C words is interpreted. For movement commands (such as G01, G02, …), the value determines how A/B/C are treated. For values other than SMC_ORI_CONVENTION .``ADDAXES``, the angles A/B/C may be normalized, even if no coordinate rotation has been programmed. For example with orientation convention ZYZ, a programmed orientation of A=90° B=0° C=0° may result in the (equivalent) rotation A=0° B=0° C=90° in the path element. For commands that set the decoder coordinate system (G54/G55/G56), the value determines how the coordinates A/B/C are treated. If the value is SMC_ORI_CONVENTION .``ADDAXES``, then A/B/C are treated as independent additional axes, for which offsets are set. For all other values, A/B/C are treated as an orientation, and the decoder coordinate system is rotated accordingly. Note If used with tool correction functions such as SMC_ToolLengthCorr , the same orientation convention has to be used there. dCircleTolerance LREAL Tolerance to decide whether the definition of a circle makes sense. case definition via target-position and radius: If the distance between start- and end-position (both projected onto the circle plane) is greater than 2 * the radius + MAX(fCircleTolerance, 1e-06) , the circle will be converted into a line. case definition via target- and center-position: Let x be the maximum of the distance between start- and center-position and the distance between target- and center-position (projecting everything onto the circle plane). If those distances differ by more than MAX(fCircleTolerance, 0.1 * x) , the circle will be converted into a line. dPrecision LREAL The precision of the path in technical units. This value indicates the precision of the positions read from the G-Code. For example, if the G-Code is given with 3 places after the decimal point, the precision should be set to 1e-3 units. The precision must be non-negative. The precision value is used for example by path preprocessors like SMC_ToolRadiusCorr and SMC_AvoidLoop . Output bDone BOOL This variable will be set to TRUE as soon as the input data has been processed completely. The function block will not perform any further actions until it gets reset. 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 Pointer to the SMC_OUTQUEUE structure that manages the decoded SMC_GEOINFO objects. iStatus SMC_DEC_STATUS The current status. iLineNumberDecoded DINT The variable contains the 0-based line number of the CNC file. GCodeText SMC_GCODE_TEXT The G-Code text. Methods: GetDCS Structure: GetDCS (Method)
File and Project Information ¶ Scope Name Type Content FileHeader creationDateTime date 13.12.2023, 09:18:52 companyName string 3S-Smart Software Solutions GmbH libraryFile SM3_Drive_ETC_KEB_ITMotorB.library primaryProject True productName CODESYS productProfile CODESYS V3.5 SP16 Patch 3 contentFile SM3_Drive_ETC_KEB_ITMotorB.clean.json version version 2.0.0.0 ProjectInformation Released bool True ShowSmartCodingInfo True LastModificationDateTime date 13.12.2023, 09:18:42 LibraryCategories library-category-list Intern|SoftMotion Author string CODESYS Development GmbH Company CODESYS CompiledLibraryCompatibilityVersion CODESYS V3.5 SP15 Description See: Description Placeholder SM3_Drive_ETC_KEB_ITMotorB Project SM3_Drive_ETC_KEB_ITMotorB Title SM3_Drive_ETC_KEB_ITMotorB Version version 4.16.0.0
Library Reference ¶ This is a dictionary of all referenced libraries and their name spaces. SM3_Basic ¶ Library Identification ¶ Placeholder: SM3_Basic Default Resolution: SM3_Basic, * (CODESYS) Namespace: SM3_Basic Library Properties ¶ LinkAllContent: False Optional: False QualifiedOnly: False SystemLibrary: False Key: SM3_Basic SM3_Drive_CMZ_Common ¶ Library Identification ¶ Placeholder: SM3_Drive_CMZ_Common Default Resolution: SM3_Drive_CMZ_Common, * (CODESYS) Namespace: CMZ Library Properties ¶ LinkAllContent: False Optional: False QualifiedOnly: True SystemLibrary: False Key: SM3_Drive_CMZ_Common SM3_Drive_CiA_DSP402 ¶ Library Identification ¶ Placeholder: SM3_Drive_CiA_DSP402 Default Resolution: SM3_Drive_CiA_DSP402, * (3S - Smart Software Solutions GmbH) Namespace: SM3_Drive_CiA_DSP402 Library Properties ¶ LinkAllContent: False Optional: False QualifiedOnly: False SystemLibrary: False Key: SM3_Drive_CiA_DSP402 SM3_Drive_ETC ¶ Library Identification ¶ Placeholder: SM3_Drive_ETC Default Resolution: SM3_Drive_ETC, * (3S - Smart Software Solutions GmbH) Namespace: SM3_Drive_ETC Library Properties ¶ LinkAllContent: False Optional: False QualifiedOnly: False SystemLibrary: False Key: SM3_Drive_ETC SM3_Drive_ETC_DS402_CyclicSync ¶ Library Identification ¶ Placeholder: SM3_Drive_ETC_DS402_CyclicSync Default Resolution: SM3_Drive_ETC_DS402_CyclicSync, * (3S - Smart Software Solutions GmbH) Namespace: SM3_Drive_ETC_DS402_CyclicSync Library Properties ¶ LinkAllContent: False Optional: False QualifiedOnly: False SystemLibrary: False Key: SM3_Drive_ETC_DS402_CyclicSync SM3_RBase ¶ Library Identification ¶ Placeholder: SM3_RBase Default Resolution: SM3_RBase, * (CODESYS) Namespace: SMRB Library Properties ¶ LinkAllContent: False Optional: False QualifiedOnly: True SystemLibrary: False Key: SM3_RBase Standard ¶ Library Identification ¶ Placeholder: Standard Default Resolution: Standard, * (System) Namespace: Standard Library Properties ¶ LinkAllContent: False Optional: False QualifiedOnly: False SystemLibrary: False Key: Standard