File and Project Information ¶ Scope Name Type Content FileHeader creationDateTime date 14.03.2023, 13:34:11 companyName string 3S-Smart Software Solutions GmbH libraryFile Datasources_Itfs.library primaryProject True productName CODESYS productProfile CODESYS V3.5 SP16 Patch 3 contentFile Datasources_Itfs.clean.json version version 2.0.0.0 ProjectInformation IsInterfaceLibrary bool True Released True LastModificationDateTime date 14.03.2023, 13:34:11 LibraryCategories library-category-list Intern|DataSources Author string 3S - Smart Software Solutions GmbH Company 3S - Smart Software Solutions GmbH CompiledLibraryCompatibilityVersion CODESYS V3.5 SP15 DefaultNamespace IDatasources Description See: Description DocFormat reStructuredText LanguageModelAttribute qualified-access-only Project Datasources_Itfs Title Datasources Interfaces Version version 4.3.0.0
Library Reference ¶ This is a dictionary of all referenced libraries and their name spaces. Base Interfaces ¶ Library Identification ¶ Name: Base Interfaces Version: newest Company: System Namespace: IBaseLibrary Library Properties ¶ LinkAllContent: False Optional: False QualifiedOnly: False SystemLibrary: False Key: Base Interfaces, * (System) SysTypes2 Interfaces ¶ Library Identification ¶ Name: SysTypes2 Interfaces Version: newest Company: System Namespace: SysTypes Library Properties ¶ LinkAllContent: False Optional: False QualifiedOnly: False SystemLibrary: False Key: SysTypes2 Interfaces, * (System)
Line ¶ GeoPrimLine_Create (Function) GeoPrimLine_Eval (Function) GeoPrimLine_EvalDerivs (Function) GeoPrimLine_Serialize (Function)
SMC_GroupEnableResumeAfterError (FB) ¶ FUNCTION_BLOCK SMC_GroupEnableResumeAfterError This function block allows resuming the programmed movement after an error of the axis group. The continueData passed to the function block is used to store the necessary information. To resume after an error, the axis group error first needs to be reset with MC_GroupReset . Then, the axis group needs to be moved to the continue position, which can be queried from the continue data using SMC_GroupGetContinuePosition . Finally, the movement that has been interrupted by the error can be resumed using MC_GroupContinue . Note If an axis group error occurs, the function block instance of the active movement will show the error (Outputs Active and Busy go to FALSE, output Error goes to TRUE). The function block instances of buffered or blending movements that have not yet become active will also show an error. After resume, all these function block instances will become Busy/Active again and their Error/CommandAborted outputs will be reset. If a falling edge of the input “Enable” is commanded while the continue data is being written (output “Active” = TRUE), then the continue data will not be valid. A falling edge of “Enable” can only be safely commanded once the output “Active” changes to FALSE. This happens once the continue data has been completely written. InOut: Scope Name Type Comment Inout AxisGroup AXIS_GROUP_REF_SM3 Reference to a group of axis continueData SMC_AXIS_GROUP_CONTINUE_DATA Written when getting Done Input Enable BOOL Enables the feature. Output Busy BOOL The FB is not finished Active BOOL The continue data is being written
SMC_GroupJog (FB) ¶ FUNCTION_BLOCK SMC_GroupJog This function block has been deprecated. Please don’t use it in new projects. See SMC_GroupJog2 for the recommended way to jog an axis group. Warning With SoftMotion version 4.11.0.0, the support for input ABC_as_ACS has been dropped. Please change to SMC_GroupJog2 if this feature is required. Activates coordinated jogging of the axis group. When this function block is active, the axis group tracks the position (and orientation) given by the axes connected to the inputs AxisX, AxisY, AxisZ, AxisA, AxisB, and AxisC. Initially, a movement to the current position of the axes is commanded. Once this movement is done, the output InitialPositionReached is TRUE. The position of the axes is interpreted in the coordinate system defined by input CoordSystem . To jog in machine coordinates, for example, use MCS here. Since the position is followed via tracking, one of the product coordinate systems is used for this purpose. This can be configured in input CoordSystemPCS . Note that this coordinate system of the axis group is changed. To perform cartesian jogging, the function blocks MC_Jog or SMC_Inch can be used on the axes given as inputs to this function block. It is recommended to call the movement function blocks of the virtual axes _before_ SMC_GroupJog. Before restarting this FB without changing CoordSystemPCS, you have to command an additional movement, like MC_GroupHalt . Otherwise, error SMC_AXIS_GROUP_PCS_STILL_IN_USE is returned. Compared to SMC_GroupJog2 , this function block has several disadvantages: The input ABC_as_ACS is no longer supported (since SoftMotion 4.11.0.0). It requires virtual axes for all jogged coordinates. If the robot cannot follow the configured jogging velocity, jogging may leave the straight-line path, or move the TCP temporarily even if only the orientation is being jogged. A path override commanded with MC_GroupSetOverride does not affect (cartesian) jogging. InOut: Scope Name Type Initial Comment Inout AxisGroup AXIS_GROUP_REF_SM3 Reference to a group of axes Input Execute BOOL Start the action at the rising edge CoordSystem SMC_COORD_SYSTEM The coordinate system in which the axis group is jogged. CoordSystemPCS SMC_COORD_SYSTEM The coordinate system used internally for the jogging. Must be a PCS. This coordinate system is changed using SMC_SetDynCoordTransformEx . VelFactor LREAL 1 The maximum velocity of each axis is multiplied by this factor, which must be in the range ]0, 1]. AccFactor LREAL 1 The maximum acceleration of each axis is multiplied by this factor, which must be in the range ]0, 1]. JerkFactor LREAL 1 The maximum jerk of each axis is multiplied by this factor, which must be in the range ]0, 1]. AxisX IAxisRef The axis controlling the x-coordinate of the configured coordinate system or the first axis of the axis group in case of ACS. AxisY IAxisRef The axis controlling the y-coordinate of the configured coordinate system or the second axis of the axis group in case of ACS. Set to 0 if not applicable. AxisZ IAxisRef The axis controlling the z-coordinate of the configured coordinate system or the third axis of the axis group in case of ACS. Set to 0 if not applicable. AxisA IAxisRef This axis controls the fourth axis of the axis group, if the coordinate system is ACS or the rotation around the x-axis of the configured cartesian coordinate system otherwise. Set to 0 if not applicable. AxisB IAxisRef This axis controls the fifth axis of the axis group, if the coordinate system is ACS or the rotation around the y-axis of the configured cartesian coordinate system otherwise. Set to 0 if not applicable. AxisC IAxisRef This axis controls the sixth axis of the axis group, if the coordinate system is ACS or the rotation around the z-axis of the configured cartesian coordinate system otherwise. Set to 0 if not applicable. ABC_as_ACS BOOL This input is no longer supported. Output Busy BOOL The FB is not finished InitialPositionReached BOOL The position given by AxisX, …, AxisC has been reached initially, after the rising edge of Execute. CommandAborted BOOL Command is aborted by another command Error BOOL Signals that an error has occurred within the function block ErrorID SMC_ERROR Error identification
SMC_GroupJog2 (FB) ¶ FUNCTION_BLOCK SMC_GroupJog2 Activates coordinated jogging of the axis group. This is the recommended function block to jog an axis group. It replaces SMC_GroupJog . Jogging is performed in the coordinate system defined by input CoordSystem . To jog in machine coordinates, for example, use MCS here. Setting ABC_as_ACS allows to use a mixed interpretation of the reference axes, X/Y/Z as cartesian position and A/B/C as axis positions of the tool kinematics. Jogging can be triggered by one or more rising edges in the Forward and Backward inputs. The function block will move all axes i whose inputs (Forward[i] XOR Backward[i]) evaluate to TRUE. Jogging can be stopped by one or more falling edges in the Forward and Backward inputs. Note A rising edge that results in both Backward[i] and Forward[i] being TRUE is interpreted as a falling edge. If both rising and falling edges are detected, the former prevail. Warning Please make sure to set the inputs VelFactor , AccFactor , and JerkFactor to safe values. These values are crucial when jogging in the ACS or when jogging the orientation. In these cases, the movement of the axes may be limited only by the global axis limits muliplied by these factors. When setting the factors to 1 (corresponding to 100%), a very fast movement may result, which is not desirable for jogging. (Of course, the ancillary limits, axis limits set by SMC_GroupSetAxisLimitFactors , and the override are also considered.) InOut: Scope Name Type Initial Comment Inout AxisGroup AXIS_GROUP_REF_SM3 Reference to a group of axes Input Enable BOOL Enables coordinated jogging of the axis group. Forward ARRAY [0..(SMC_RCNST.MAX_AXES - 1)] OF BOOL Input to jog the respective coordinate forward. Backward ARRAY [0..(SMC_RCNST.MAX_AXES - 1)] OF BOOL Input to jog the respective coordinate backward. MaxLinearDistance LREAL The maximum linear distance a coordinate is jogged while no new rising edge is detected on the Forward/Backward inputs. The distance must be positive, otherwise an error is reported. MaxAngularDistance LREAL The maximum angular distance a coordinate is jogged while no new rising edge is detected on the Forward/Backward inputs. The distance must be positive, otherwise an error is reported. Velocity LREAL Maximum path velocity [u/s]. Always positive. Not necessarily reached. Acceleration LREAL Maximum path acceleration [u/s²]. Always positive. Not necessarily reached. Deceleration LREAL Maximum path deceleration [u/s²]. Always positive. Not necessarily reached. Jerk LREAL Maximum path jerk [u/s³]. Always positive. Not necessarily reached. VelFactor LREAL The maximum velocity of each axis is multiplied by this factor, which must be in the range ]0, 1]. The default is 0, which results in an error. AccFactor LREAL The maximum acceleration of each axis is multiplied by this factor, which must be in the range ]0, 1]. The default is 0, which results in an error. JerkFactor LREAL The maximum jerk of each axis is multiplied by this factor, which must be in the range ]0, 1]. The default is 0, which results in an error. TorqueFactor LREAL 1 The maximum torque of each axis is multiplied by this factor, which must be in the range ]0, 1]. A dynamic model must have been set using SMC_GroupSetDynamics for this factor to have an effect. CoordSystem SMC_COORD_SYSTEM The coordinate system in which to jog. Jogging in dynamic coordinate systems (e.g. while tracking a conveyor belt) is not supported. ABC_as_ACS BOOL Mixed jogging. The position is jogged in cartesian space, the orientation axes are jogged in axis space. If the input CoordSystem equals ACS, then this input is ignored. Otherwise, if the input CoordSystem is a cartesian coordinate system, the orientation is jogged in ACS, while the position is jogged in the cartesian coordinate system. Forward/Backward[3..5] control the axis positions of the orientation axes. Forward/Backward[0..2] control the (X,Y,Z) position of the TCP. When jogging the orientation axes, the robot will perform a compensating movement so that the TCP remains stationary. If TRUE, the axis group’s kinematic transformation must be a so called coupled kinematics, composed of a positioning and an orientation kinematics. It must support SMC_ORIENTATION_MODE.Axis . If not, the error SMC_CP_AXIS_ORIENTATION_IPO_OFFSET2_NOT_IMPLEMENTED or SMC_CP_KIN_DOES_NOT_SUPPORT_AXIS_ORIENTATION_IPO is returned. The FB does not have to be restarted to clear this error, instead the input ABC_as_ACS can be set to FALSE. If FALSE, then, depending on the input CoordSystem, either all axes are jogged in axis coordinates (ACS) or the position and orientation are jogged in cartesian space. In this case, Forward/Backward[3..5] rotate the TCP around the X-/Y-/Z-Axis of the cartesian coordinate system. Output Active BOOL The FB is currently in control of the axis group. Busy BOOL The FB is not finished Error BOOL Signals that an error has occurred within the function block ErrorID SMC_ERROR Error identification CurrentPosition SMC_POS_REF The current position of the axis group
SMC_GroupUpdateContinueData (FB) ¶ FUNCTION_BLOCK SMC_GroupUpdateContinueData This function block updates the continue data in order to keep it in sync with the movement of any dynamic coordinate systems. It is necessary for continuing on a path in a dynamic coordinate system, e.g. on a path in a PCS that is following a rotary table. Failing to use this function block in such a scenario might lead to an error when trying to continue. Strictly speaking, the function block has to only be called from the moment continue data has been written until the moment it has been used and MC_GroupContinue reports Done . However, it is possible and actually recommended to simply call the function each cycle, regardless of whether the continue data is actually in use. InOut: Scope Name Type Comment Inout AxisGroup AXIS_GROUP_REF_SM3 Reference to an axis group. continueData SMC_AXIS_GROUP_CONTINUE_DATA The continue data that has to be kept up to date. Input Enable BOOL Enables the feature. Output Busy BOOL The function block has not yet finished. Error BOOL Signals that an error has occurred within the function block. An error does not stop the execution of this function block and it is not necessary to restart the function block in order to reset the error. ErrorID SMC_ERROR Error identification
GeoPrimLine_Create (FUN) ¶ FUNCTION GeoPrimLine_Create InOut: Scope Name Type Inout ef ElemFun Inout Const vS SM3M.SMC_VECTOR3D vD SM3M.SMC_VECTOR3D
SMC_GroupWait (FB) ¶ FUNCTION_BLOCK FINAL SMC_GroupWait Programmed waiting on the path. SMC_GroupWait behaves like a buffered movement command, leading to a wait for a given time between two movements. It is not possible to blend into or from waiting. The waiting time starts right after the previously commanded movement has finished. The waiting time between the two surrounding movements will be exactly the configured time. If a waiting command follows a tracking movement, the axis group will track the endpoint of the preceding movement for the specified time. If the axes are not in standstill, but not controlled by the axis group, and waiting is commanded, the axis group will report the error SMC_AXIS_GROUP_IDLE_WAIT_AXES_MOVING . As set-values are updated once per bus cycle, waiting times different from a multiple of the bus cycle time will just appear as a smoother start-up of the subsequent movement. Note Buffered movements always start at the beginning of a task cycle. This means that there is an implicit wait of at most one task cycle between any two consecutive buffered movements. The duration of this implicit wait can be reduced by SMC_GroupWait with a shorter wait time. InOut: Scope Name Type Comment Inout AxisGroup AXIS_GROUP_REF_SM3 Reference to a group of axes Input Execute BOOL Start the action at rising edge WaitTime LREAL The time to wait on the path, in seconds. May not be negative. Output Done BOOL Standstill has been reached Busy BOOL The FB is not finished Active BOOL Indicates that the FB has control on the axis CommandAborted BOOL Command is aborted by another command CommandAccepted BOOL The command has been accepted by the axis group. If the output becomes TRUE , the function block instance can be used to command the next movement with a new rising edge on Execute . While the output is FALSE , keep calling the function block without a new rising edge of Execute . The output is reset to FALSE on a falling edge of Execute . Error BOOL Signals that an error has occurred within the function block ErrorID SMC_ERROR Error identification MovementId SMC_Movement_Id The unique identifier of the movement. Valid if CommandAccepted or Done is TRUE .
File and Project Information ¶ Scope Name Type Content FileHeader creationDateTime date 26.07.2024, 12:03:39 companyName string 3S-Smart Software Solutions GmbH libraryFile SM3_Robotics.library primaryProject True productName CODESYS productProfile CODESYS V3.5 SP16 Patch 3 contentFile SM3_Robotics.clean.json version version 2.0.0.0 ProjectInformation IsEndUserLibrary bool False OnlineHelp True Released True ShowSmartCodingInfo True LastModificationDateTime date 26.07.2024, 12:03:27 LibraryCategories library-category-list Intern|SoftMotion Author string CODESYS Development GmbH Company CODESYS CompiledLibraryCompatibilityVersion CODESYS V3.5 SP15 DefaultNamespace SM3_Robotics Description See: Description DocFormat reStructuredText DocLanguages en, de Placeholder SM3_Robotics Project SM3_Robotics Title SM3_Robotics Version version 4.17.0.0