The CODESYS SoftMotion is not compatible with application-based licenses.

CODESYS SoftMotion

CODESYS SoftMotion is an additional option for CODESYS compatible SoftPLC systems. CODESYS SoftMotion extends the functional scope of these systems from a purely logical controller to a motion controller, optionally also with CNC and robotics support.

Current version
4.17.0.0
Article number
Bundle-SoftMotion

From $132.00

Product Description

CODESYS SoftMotion enables the control of single-axis and synchronized multi-axis movements (electronic cams, electronic gears).

CODESYS SoftMotion CNC+Robotics enables the control of CNC machines and industrial robots.

CODESYS SoftMotion Light allows to command CiA 402 compatible drives for single axis movements (not synchronized).

Functional principle:

  • Engineering of motion control using function blocks

  • Configuration of drives based on the fieldbus support integrated in the CODESYS Development System

  • Parameterization of axis groups for predefined kinematics in a separate object

  • Separation of application development from drive configuration. The drives in the device tree are accessed symbolically (by name) from the application. Changes in the drive configuration are possible without changing the application.

  • Motion planning with cam editor

  • Integrated motion planning:

    • with 3D CNC editor according to DIN 66025 (G code) and tabular editor

    • with coordinate values for robot positions in different coordinate systems

  • Processing of CNC motion, robotic motion, or other motion tasks in the runtime system on the controller with the IEC 61131-3 logic application

  • Online editing of CNC programs in CODESYS Visualization

Typical applications of CODESYS SoftMotion:

  • As an additional option for powerful, CODESYS compatible control systems with good real-time behavior (FPU recommended)

  • Actuation of single-axis and multi-axis movements, for example with position and velocity definitions, drive functions, and phase actuation

  • Implementation of electronic cams

  • CNC motion with modifications by the end user (for example, in metal and woodworking machines)

  • Robotic systems including SCARA, tripod, and palletizing robots such as in assembly and loading automation

A note on SoftMotion Light: In contrast to SoftMotion and SoftMotion CNC+Robotics, the calculation of the axis movements is not done within the controller. With SoftMotion Light movements of the drive are just commanded and supervised (status) by the PLC and executed by the drive. The trajectory calculation is done in the drive.

SoftMotion Light is suitable for applications with multiple axes for single axes movements and for controller tasks requiring a low bus and computing load (CPU).

Requirements

Programming System

CODESYS Development System V3.5.17.0 or higher

Runtime System

CODESYS Control Version 3.5.14.0 or higher

Supported Platforms/ Devices

All supported by CODESYS:
  • Real-time capable operating system platforms

  • CPU platforms with available FPU (Floating Point Unit)

  • Devices with integrated fieldbus (EtherCAT, CAN/CANopen)

Additional Requirements

WIBU Codemeter Support

SoftMotion CNC+Robotics requires CODESYS SoftMotion as a basis license.

SoftMotion Light works with CiA 402 compatible drives with CANopen or EtherCAT. Compatibility can be checked with the test project SML_CompatibilityCheck_DS402.project

Restrictions

-

Licensing

Single device license: The license can be used on the target device/PLC on which the CODESYS runtime system is installed.

Licenses are activated on a software-based license container (soft container), which is permanently connected to the controller. Alternatively, the license can be stored on a CODESYS Key (USB dongle). By replugging the CODESYS Key, the license can be used on any other controller.

Required Accessories

Optional: CODESYS Key

Supplier

CODESYS Corporation
A member of the CODESYS Group


200 Cummings Center, Suite 272-D
Beverly, MA 01915, USA

Additional Downloads

Versions

Version History

Version Release Notes Release Date

Release Note

This version contains improvements to MC_CamIn and forecast functionality for single axis and master/slave movements.

New cam features include distance based ramping in, the segment type Poly7, and a CamBuilder API to programmatically create Cams.

The forecast functionality provides a forecast of the axis movement with high resolution timing. That means you can execute an action a given time (e.g. 100 ms) before an axis reaches a given position. And you can query the position, velocity, acceleration, and jerk that an axis will have at a given time.

New Features and Improvements

  • [SM-4911] MC_CamIn: Additional functionality

    • [SM-4771] Cam: Extend the IEC interface for creating cams

    • [SM-4772] MC_CamIn: Add distance based ramping in

    • [SM-4976] Support for new Cam segment type Poly7

    • [SM-5008] Create an example application for the new IEC cam creation interface

    • [SM-5015] Create an example application for distance based ramp in

  • [SM-5089] Basic motion: Support for forecast

    • [SM-5101] Forecast: function block for querying the duration until an axis position is reached

    • [SM-5102] Forecast for single axis movements: Create example application

    • [SM-5139] Create function block to query the dynamic of an axis in the future

    • [SM-5210] Create function blocks to set and read the forecast

    • [SM-5214] Create function block to query the duration until an axis position is reached

  • [SM-4421] Create examples for the Multi-Axis Function Blocks that are not used for Cams

  • [SM-4626] [Product discontinuation] [Remove Product from Setup] SoftMotion sercos driver

  • [SM-4724] SMC_GroupReadPathDynamics: Create separate POUs for velocity and acceleration to reduce the computation time

  • [SM-4743] Visu libs should be optional libraries

  • [SM-4783] SM3_Drive_ETC: In case of lost sync error, log maximum task jitter and dc sync values

  • [SM-4795] SMC_TRAFO_Tripod_Arm: Improve documentation for inputs

  • [SM-4934] Improve restart behaviour with the sinsquare velocity profile

  • [SM-4939] Create a function block to compute the axis position given a high resolution timestamp (intra-cycle)

  • [SM-4998] Improve performance of SM3_Shared.fmod

  • [SM-5000] MC_CamIn: Document behaviour when starting a cam relatively with a start position <> 0

  • [SM-5020] Implement MC_HaltSuperimposed

  • [SM-5024] MC_SetOverride: improve documentation with diagrams

  • [SM-5044] MC_CamIn, ramp_in_dist: Handle changed or modified cam tables

  • [SM-5058] MC_CamIn: Remove bChangedOnline functionality

  • [SM-5081] Additional segment types: Moved constants gc_SMC_FILE_MAXCAMEL and gc_SMC_FILE_MAXCAMTAP

  • [SM-5105] SMC_GroupWait: improve documentation

  • [SM-5154] MC_CamIn: Add support for BufferModes

  • [SM-5156] BoschRexroth CtrlX Drive: delete old ESI files

  • [SM-5157] CMZ SBD Drive CAN: update the “TransmissionType” in the device descriptions.

  • [SM-5158] New SoftMotion Driver for Mitsubishi Melservo series

  • [SM-5178] Kollmorgen AKD2G: Update device descriptions - new ESI Data

  • [SM-5234] SoftMotion profiles should support relative paths

Major Bug-Fixes

  • [SM-4825] MC_CamIn: Slave position jump when changing cam

  • [SM-4984] Access violation when using MC_GroupReset or MC_GroupDisable

  • [SM-5118] MC_MoveAdditive, MC_MoveSuperImposed, MC_SetOverride: Jump in position when changing the override while MC_MoveAdditive and MC_MoveSuperImposed are active

  • [SM-5119] MC_MoveSuperImposed, Blending: Commanding a blending movement while MC_MoveSuperImposed is active can lead to a huge position overshoot

  • [SM-5203] SMC_TrackSetValues and SMC_TrackAxis: access violation if controlled axis has ramp type sinsquare and quadratic_smooth

  • [SM-5206] MC_GearInPos: Position jump when switching to InSync while an MC_MoveSuperImposed is active on the slave axis

  • [SM-5225] Robotics: possible access violation in planner when using a dynamic model

  • [SM-5269] AxisGroup can get stuck when MC_GroupEnable is called directly after MC_GroupDisable

Minor Bug-Fixes

  • [SM-2055] MC_Halt must not be able to abort homing

  • [SM-3467] Setting a variable mapping to a bit in the EtherCAT I/O mapping leads to a runtime error

  • [SM-4617] SMC_TRAFOF_Scara2/3, SMC_TRAFOF_Polar, SMC_TrafoF_ArticulatedRobot_6DOF: Division by zero exception for invalid parameter values

  • [SM-4751] SMC_Interpolator: Error due too high Spline curvature

  • [SM-4785] SMC_ToolRadiusCorr/SMC_AvoidLoop does not report an error for unsupported ellipses types (G8/9)

  • [SM-4792] MC_CamIn: Acceleration jump after ramping in with sinsquare velocity profile

  • [SM-4897] MC_CamIn: Division by zero when the MasterScaling is set to zero

  • [SM-4899] MC_GearInPos cannot be aborted by MC_Stop while it is waiting for the master axis to reach the MasterStartDistance

  • [SM-4948] MC_Home: Falling Execute edge causes a reset of the POU even when it is not finished yet

  • [SM-5010] MC_CamIn: ramping in may take longer than necessary with velocity ramp type quadratic_smooth

  • [SM-5011] SMC_ToolRadiusCorr, G02: Correction does not work on full circles

  • [SM-5026] MC_CamIn: StartMode = relative is not considered

  • [SM-5051] Tab: Scaling/Mapping: “Auto mapping” does not work correctly if several Devices are present

  • [SM-5059] MC_GearInPos, MC_CamIn: Outputs are not correct when aborted

  • [SM-5084] MC_CamIn: problems when MC_CamIn is followed by a buffered movement

  • [SM-5117] MC_MoveAbsolute/Relative: Wrong axis state while blending

  • [SM-5127] SM3_Drive_ETC_Yaskawa_Sigma7: device description is missing support for velocity offset (0x60B1:00)

  • [SM-5141] MC_MoveSuperImposed, Buffered movements: Inconsistent behavior when using MoveSuperImposed while buffered movements are active

  • [SM-5151] MC_CamIn: Position jump when MC_SetPosition is called on the master axis during camming

  • [SM-5180] Robotics Dynamic model example: Center of mass for the z-axis and spatial inertia for thin rods is not correct

  • [SM-5192] MC_Phasing: Invalid error codes may be returned

  • [SM-5202] SMC_TrackSetValues and SMC_TrackAxis don’t work well with superimposed movement on the controlled axis

  • [SM-5205] MC_MoveVelocity: Jump in position when the function block is not called when it is aborted and the override changes in the meantime

  • [SM-5213] MC_PositionProfile, MC_VelocityProfile, MC_AccelerationProfile: Position is not set correctly for modulo axes

  • [SM-5215] MC_MoveSuperImposed, MC_SetOverride: Effective distance of superimposed movement changes if the override is changed while there is no underlying movement

  • [SM-5230] SMC_AvoidLoop: circle is cut although there is no loop

  • [SM-5242] CAN_Schneider_Lexium32: Wrong attribute value for offlineaccess

  • [SM-5257] SMC_AvoidLoop: full circle is cut due to numerical reasons

  • [SM-5262] SMC_TrackSetValues, SMC_TrackAxis: MC_SetPosition is not handled correctly

Compatibility Information

General

This version is compatible with CODESYS V3.5 SP17 and newer. However we recommend the latest patch level of CODESYS V3.5 SP20.

  • [SM-4626] [Product discontinuation] [Remove Product from Setup] SoftMotion sercos driver

    The driver SM3_Drive_sIII_Standard has been dicontinued and has been removed from CODESYS SoftMotion.

  • [SM-4785] SMC_ToolRadiusCorr/SMC_AvoidLoop does not report an error for unsupported ellipses types (G8/9)

    Ellipses (G08/G09) are not supported during active tool radius correction and/or loop avoidance. Starting with version 4.17.0.0, an error is reported for ellipses during active tool radius correction and/or loop avoidance.

  • [SM-4934] Improve restart behaviour with the sinsquare velocity profile

    The interruption behaviour of velocity ramp type sinsquare has been changed. If a movement is interrupted while the acceleration of the axis is non-zero, the new movement starts immediately with acceleration 0.

    Previously, the acceleration has first been ramped down to 0 with the configured maximum jerk. This was potentially dangerous, if a small value for the maximum jerk has been configured accidentally. In this case, a large position overshoot could occur.

    The new behavior is thus safer. However, the acceleration now will jump to zero on interruption.

    To activate the old behavior (acceleration ramp to zero) again, you can use the compiler define SM3_BASIC_SINSQUARE_ACC_RAMP in your application.

  • [SM-5020] Implement MC_HaltSuperimposed

    A new error “SMC_SUPERIMPOSED_FB_WASNT_CALLED” has been introduced. This error is generated if an MC_MoveSuperimposed or MC_HaltSuperimposed is still active but not called in the current task cycle. The axis changes to errorstop. It is possible, though unlikely, that this error occurs with existing projects that worked without errors with earlier versions of CODESYS SoftMotion. In this case, the application has to be modified so that MC_MoveSuperimposed is called as long as it is active.

  • [SM-5044] MC_CamIn, ramp_in_dist: Handle changed or modified cam tables

    If the input CamTableId is changed while ramping in with StartMode ramp_in, ramp_in_neg, or ramp_in_pos, ramping in is not aborted. If the new cam table evaluates to the same slave state for the given master state as the old cam table, no jump occurs.

  • [SM-5081] Additional segment types: Moved constants gc_SMC_FILE_MAXCAMEL and gc_SMC_FILE_MAXCAMTAP

    The global variable list SMC_File_Constants of the library SM3_Basic has been deleted. The constants gc_SMC_FILE_MAXCAMEL and gc_SMC_FILE_MAXCAMTAP have been converted into library parameters and moved to the global variable list LibParams.

  • [SM-5141] MC_MoveSuperImposed, Buffered movements: Inconsistent behavior when using MoveSuperImposed while buffered movements are active

    Starting with SoftMotion version 4.17.0.0 the behavior when using superimposed movement together with buffered or blending discrete movements is as follows:

    • The trajectories of superimposed movements and the underlying movements do not affect each other. The total distance travelled by the axis is the distance of all superimposed movements plus the distance of all underlying movements.

    • The total superimposed distance will not be reset by any non-aborting movement.

    • In particular, the target position of buffered or blending absolute movements will be the commanded position plus the total superimposed distance.

    • The total superimposed distance is reset when an aborting movement is commanded. An aborting absolute movement will reach the commanded position exactly. The distance travelled by any preceding superimposed movement is not added to the commanded position.

    Fixed with SM-5089.

  • [SM-5234] SoftMotion profiles should support relative paths

    Starting with SoftMotion 4.17.0.0, the entry “SoftMotion Profiles” in RepositoryLocations.ini can optionally be a relative path. Previously, only absolute paths were supported.

  • [SM-5262] SMC_TrackSetValues, SMC_TrackAxis: MC_SetPosition is not handled correctly

    SMC_TrackSetValues now behaves like SMC_FollowSetValues if the provided set values can be followed exactly. In particular, the fSetPosition is now expected to be provided in the coordinate system that was active on the rising edge of bExecute. If the coordinate system is changed using MC_SetPosition and the fSetPosition should be provided in the new coordinate system, SMC_FollowSetValues has to be restarted.

Information from JIRA

To read up on implemented features and changes you can use your JIRA account. Please find some example filters below.

List of features and changes:

project = “CODESYS SoftMotion” AND fixVersion = 4.17.0.0

List of issues with compatibility information:

project = “CODESYS SoftMotion” AND fixVersion = 4.17.0.0 AND (text ~ COMPATIBILITY_INFORMATION OR text ~ KNOWN_LIMITATIONS)

30.07.2024

Release Note

CODESYS SoftMotion 4.16.0.0 introduces override functionality for single axis function blocks in the form of the function block MC_SetOverride. In addition, there are new examples for interrupt/continue and override and numerous small improvements and bug fixes.

New Features and Improvements

  • [SM-137] Create function block MC_SetOverride

  • [SM-3442] Improve documentation for table units in Cam tables

  • [SM-4116] Explain the parameter fPlanningInterval of SMC_TuneCPKernel in more detail

  • [SM-4355] SMC_XInterpolator: support intersection of helix with arbitrary planes

  • [SM-4444] Documentation: Create an example for Interrupt and Continue

  • [SM-4587] Updating the SoftMotion profile should remove any placeholder redirections for SoftMotion libraries

  • [SM-4622] Change Company and Author of SoftMotion libraries in SoftMotion profile

  • [SM-4656] Reduce the memory usage of the axis group by reducing the evaluation cache size

  • [SM-4658] SM3_Transformation: Document position and orientation of the flange frame for all kinematics

  • [SM-4704] Update company, vendor, and author for modified SoftMotion libraries and device descriptions

  • [SM-4822] Fix touch probe Problem for CMZ SBD COE

Major Bug-Fixes

  • [SM-4678] Axis group: Potential FPU invalid operation exception

  • [SM-4725] Axis group, Trigger: Trigger on asymmetric blending elements are projected to an unexpected position

  • [SM-4727] Triggers are not saved in the continue data after MC_GroupHalt with ClearMovements=FALSE

  • [SM-4731] CNC: Unhandled exception when using Interface Language Chinese and ‘Analyze dynamics’ in CNC editor

  • [SM-4793] MC_CamIn: Ramping in starts with a positive acceleration if the slave axis is accelerating in negative direction

Minor Bug-Fixes

  • [SM-3979] SMC_MoveContinuousAbsolute/Relative: AdaptEndVelToAvoidOvershoot does not work correctly with trapezoidal velocity profile

  • [SM-4481] Multi axis slave: Invalid mapping when deleting the address of an object from the second or higher axes and activating automatic mapping afterwards

  • [SM-4554] SM3_Depictor: error when using SMC_R_Depictor_Gantry3 with SMC_R_Depictor_Wrist2

  • [SM-4584] Tracking: Rotary axis jumps into a different period after MC_GroupContinue

  • [SM-4592] SMC_CP_TRAJECTORY_NOT_SMOOTH while jogging

  • [SM-4612] MC_CamTableSelect: The checks for non-equidistant point tables do not use the correct offset and scale

  • [SM-4627] AXIS_REF_SM3: wrong parameter number for fSetTorque in documentation (1153 instead of 1160)

  • [SM-4636] SMC_CamRegister: Documentation is unclear

  • [SM-4650] FREE_ENCODER_REF: there is no input to pass the information that the position in increments is valid

  • [SM-4684] SM3_Drive_ETC: Multiple device descriptions have the wrong parameter number for diActTorque

  • [SM-4691] SMC_MoveContinuousAbsolute, SMC_MoveContinuousRelative: Possible jump in fSetPosition after homing

  • [SM-4695] MC_MoveSuperimposed: Restarting the FB multiple times while it is Busy leads to a wrong Distance

  • [SM-4699] SMC_MoveContinuousAbsolute/Relative: Unexpected reversal when restarting the FB

  • [SM-4720] Misleading documentation for MC_ReadAxisError and TRIGGER_REF

  • [SM-4744] SMC_GetCamSlaveSetPosition: not all errors are reported

  • [SM-4766] MC_SetPosition: documentation contains typo and is unclear

  • [SM-4767] Triggers with errors get enabled after a continue

  • [SM-4768] Trigger: A trigger with an error that is projected to a blending loses the error condition

  • [SM-4778] SMC_Interpolator: Internal error when computing the quadratic velocity profile

  • [SM-4779] SM3_Drive_ETC_SoE_Standard: errors of IDNRead/Write commands are not properly propagated and logged

  • [SM-4796] SMC_MoveContinuousAbsolute, SMC_MoveContinuousRelative: Position jump when used in combination with MC_MoveSuperImposed

  • [SM-4797] SMC_GroupInterruptAt: Pause positions on asymmetric blending elements are projected to an unexpected position

  • [SM-4801] Kollmorgen AKD, AKD2G: SoftMotion drives have the same Device ID

  • [SM-4819] SMC_TRAFO_Tripod_Arm: dMaxAngleBallJoint is not checked correctly

  • [SM-4828] SM_Drive_PosControl: Typo in the DevDesc

Compatibility Information

General

This version is compatible with CODESYS V3.5 SP17 and newer. However we recommend the latest patch level of CODESYS V3.5 SP19.

  • [SM-4725] Axis group, Trigger: Trigger on asymmetric blending elements are projected to an unexpected position

    The projection of triggers when blending has been improved. Triggers are now projected to the point on the blending element that is closest to the original trigger point.

  • [SM-4801] Kollmorgen AKD, AKD2G: SoftMotion drives have the same Device ID

    Updating an “AKD EtherCAT Drive (CoE) SoftMotion” slave from a version < 4.16.0.0 to a version >= 4.16.0.0 does not automatically update the SoftMotion Drive below the slave. The drive must be manually updated, e.g. by using the “Update device” dialog.

Information from JIRA

To read up on implemented features and changes you can use your JIRA account. Please find some example filters below.

List of features and changes:

project = “CODESYS SoftMotion” AND fixVersion = 4.16.0.0

List of issues with compatibility information:

project = “CODESYS SoftMotion” AND fixVersion = 4.16.0.0 AND (text ~ COMPATIBILITY_INFORMATION OR text ~ KNOWN_LIMITATIONS)

15.12.2023

Release Note

CODESYS SoftMotion 4.15.0.0 adds support for trigger points on the path to Robotics, similar to h-functions in our CNC product. Trigger points can be created for movements using a relative position, an absolute distance, or the intersection with a plane. Within a configurable forecast-duration, the trigger can be queried in advance. The precise remaining duration until the trigger is reached is reported.

New Features and Improvements

  • [SM-1328] Robotics: Support digital switches on the path

  • [SM-70] SM: MC_GearInPos, MC_GearIn, MC_Cam: Handle situation if motion FB of master axis is called later in the cycle

  • [SM-3809] Implement SMC_GroupReadRemainingTrajectoryDuration for querying the remaining duration of a trajectory

  • [SM-4088] SMC_FB_WASNT_CALLED_DURING_MOTION: The last FB instance that had control of the axis should be logged

  • [SM-4266] SM3_Drive_ETC: improve logging of acyclic communication errors of EtherCAT drives

  • [SM-4279] Deprecate SMC_CAM_ObjectManager

  • [SM-4298] Improve documentation for error SMC_CP_QUEUE_UNDERRUN

  • [SM-4300] Kin_4AxesPalletizer: Document the singularity at (A,B,C) = (0,0,0)

  • [SM-4348] Integrate improved depictor models

  • [SM-4373] SMC_GroupReadPathDynamics: Make it possible to query the path dynamics in the future

  • [SM-4412] Implement SMC_GroupReadPositionInMovement for querying the current relative position in a movement

  • [SM-4478] SMC_ChangeDynamicLimits: The documentation should include, that the values are interpreted based on the gear output

  • [SM-4510] MC_GroupReadStatus: Add new outputs CurrentPlanningForecast and CurrentSyncBufferDuration

  • [SM-4513] Improve the error message of SMC_AXIS_GROUP_FOLLOW_SETVALUE

  • [SM-4522] SMC_GroupReadPathDynamics: Default CoordSystem should be MCS

  • [SM-4526] Document that administrative function blocks that use ReadPosition output the configuration with automatic periods

  • [SM-4532] Integrate SoftMotion Driver for BRC ctrlX DRIVE over CoE

  • [SM-4533] Integrate Softmotion Driver for WEG SCA06

Major Bug-Fixes

  • [SM-1997] Cam: Tappets on Cam object used on multiple axes do not work correctly

  • [SM-4265] CNC: If special characters are entered in a CNC editor, e.g. “///”, an unhandled error appears

  • [SM-4325] SMC_ToolRadiusCorr: Does not work correctly when using rotated decoder coordinate system in 2D mode

  • [SM-4455] Possible division by zero / NaN in trajectory generation (e.g. MC_MoveAbsolute)

  • [SM-4515] Halt/Stop: a halt with ClearMovement=FALSE might clear unposted movements when it is done

Minor Bug-Fixes

  • [SM-2983] CAN-CMZ-SD-ISD: 03_Homing_DriveStart fail on reenable drive

  • [SM-3976] MC_GearInPos: No error is reported if the controller mode is not position or velocity

  • [SM-4112] OrientationMode Axis with Kin_Scara2_Z: if the tool in x-direction is longer than arm2, error SMC_TRAFO_INVALID_PARAMETERS might occur

  • [SM-4236] CAN CMZ SD: Drive cannot be enabled after homing has been aborted by quick stop

  • [SM-4290] CNC object with Compile Mode SMC_OutQueue or SMC_CNC_REF will lead to new warning C0564 with SP20

  • [SM-4302] SMC_ChangeGearingRatio: Division by zero exception if the current dwRatioTechUnitsDenom = 0 or iRatioTechUnitsNum = 0

  • [SM-4304] SMC_GroupSaveContinueData: Aborting movements might be omitted when saving continue data

  • [SM-4309] SMC_ToolRadiusCorr: Documentation has an example where the correction plane is changed

  • [SM-4326] SoftMotion Libraries contain symbols without namespace or prefix

  • [SM-4352] Blending between dynamic coordinate systems with TMCornerDistance might not respect the configured corner distance

  • [SM-4362] fSetJerk does not get reset during a quickstop in velocity or position controller mode

  • [SM-4372] Errors during installation of the SoftMotion package >= 4.14.0.0 with CODESYS SP16

  • [SM-4385] An internal error (SMC_CP_INTERNAL_EVAL_CACHE_ERROR) may occur during a reset

  • [SM-4387] MC_GroupContinue: SMC_AXIS_GROUP_CONTINUE_WRONG_POSITION might be falsely reported

  • [SM-4388] Path deviation too high when tracking out

  • [SM-4472] Some Diagnostic POUs return Valid = True even when the axis group is disabled

  • [SM-4512] Keba KeDrive D3: Invalid Device Id of ETC Slave DA33x

Compatibility Information

General

This version is compatible with CODESYS V3.5 SP17 and newer. However we recommend the latest patch level of CODESYS V3.5 SP19.

  • [SM-1997] Cam: Tappets on Cam object used on multiple axes do not work correctly

    The error SMC_CI_MORE_THAN_32_ACCESSES will now be reported if more than 32 MC_CamIn instances use the same MC_CAM_REF instance at the same time.

  • [SM-4279] Deprecate SMC_CAM_ObjectManager

    The SMC_CAM_ObjectManager (g_CAMManager) has been deprecated and will no longer be available in future versions of SoftMotion.

  • [SM-4326] SoftMotion Libraries contain symbols without namespace or prefix

    Several internal functions, GVLs, and interfaces that did not have the prefix “SMC” were renamed. For example, the internal GVL “Constants” from SM3_Math.library has been renamed to SMC_Math_Constants.

  • [SM-4333] Revise the dimensioning of constant values for triggers and publish them as library parameters

    For customers that implement their own library resolved by placeholder SM3_CPKernelDefaults. The library has been extended by a new function GetDefaultPlanningForecastDuration. Additionally, a new library parameter ‘LibParams.MAX_NUM_TRIGGERS_PER_MOVEMENT’ of type UDINT has been added to the library. Please see the SoftMotion OEM documentation, chapter 5.2, for more details.

  • [SM-4348] Integrate improved depictor models

    In accordance to the naming convention of the data FBs in SM3_Depictor, ‘SMC_R_CAxisTool’ has been renamed to ‘SMC_R_CAxisTool_Data’.

  • [SM-4522] SMC_GroupReadPathDynamics: Default CoordSystem should be MCS

    The default value for the CoordSystem input of SMC_GroupReadPathDynamics is now MCS instead of ACS. This was changed since ACS is not supported and led (and still leads) to an error.

  • [SM-3498] SM3_Drive_ETC_CMZ_BD: SMC3_ReinitDrive causes a new configuration of the Distributed Clock

    For several SoftMotion drivers, the undocumented inputs xHook_WaitInPreOp and xHook_WaitInSaveOp have been removed.

    These drivers are affected:
    • SM3_Drive_ETC_CMZ_BD

    • SM3_Drive_ETC_CMZ_SBD

    • SM3_Drive_ETC_Bonfiglioli_iBMD

    • SM3_Drive_ETC_KEB_iTMotorB

Known Limitations

Information from JIRA

To read up on implemented features and changes you can use your JIRA account. Please find some example filters below.

List of features and changes:

project = “CODESYS SoftMotion” AND fixVersion = 4.15.0.0

List of issues with compatibility information:

project = “CODESYS SoftMotion” AND fixVersion = 4.15.0.0 AND (text ~ COMPATIBILITY_INFORMATION OR text ~ KNOWN_LIMITATIONS)

28.07.2023

Release Note

This is a maintenance release focusing on bug fixes and small improvements.

New Features and Improvements

  • [SM-3057] Saving of continue data: save continue data of CP kernel in planning task

  • [SM-3940] Kin_Scara2_Z, Kin_Scara3_Z: Update documentation and allowed offset range

  • [SM-3943] Robotics: improve documentation of CommandAccepted output

  • [SM-4022] SMC_Interpolator: It should be possible to change the dJerkMax input while the interpolator is running

  • [SM-4034] MC_ReadParameter: adjust unclear description

  • [SM-4096] SMC_ToolRadiusCorr: Improve documentation for tool radius correction with G0

  • [SM-4119] Improve documentation of MC_PositionProfile, MC_VelocityProfile and MC_AccelerationProfile

Major Bug-Fixes

  • [SM-4089] Modulo axes: error in check continue position

Minor Bug-Fixes

  • [SM-2145] DeviceEditorSoftMotion: When adding more than one axis to an EtherCAT slave, the additional axes initially show a wrong mapping

  • [SM-3950] Cam-Editor, Tappets: Unhandled exception when adding a tappet track to a Cam object that already has 99 tracks

  • [SM-4055] SMC_GroupReadTargetPosition: A valid target position might be falsely reported

  • [SM-4085] SMC_ToolRadiusCorr: Very large tool radius (10^300) leads to problems

  • [SM-4136] SELXM32M contains invalid path characters in icon path.

Compatibility Information

General

This version is compatible with CODESYS V3.5 SP17 and newer. However we recommend the latest patch level of CODESYS V3.5 SP18.

  • [SM-4022] SMC_Interpolator: It should be possible to change the dJerkMax input while the interpolator is running

    The dJerkMax input of SMC_Interpolator can now be changed while the interpolator is running. The value will become active - at the start of the interpolator - or once a standstill has been reached (between two G-code commands, due to a stop or caused by a override value of 0),

Information from JIRA

To read up on implemented features and changes you can use your JIRA account. Please find some example filters below.

List of features and changes:

project = “CODESYS SoftMotion” AND fixVersion = 4.14.0.0

List of issues with compatibility information:

project = “CODESYS SoftMotion” AND fixVersion = 4.14.0.0 AND (text ~ COMPATIBILITY_INFORMATION OR text ~ KNOWN_LIMITATIONS)

13.03.2023

Release Note

Main content of this new realease is the support for pilot torque control and torque limitation for CODESYS Robotics. Kinematics can be extended by their dynamic model.

Apart from this improvements and bug fixes in different fields have been implemented.

New driver support for CMZ models SBD, IBD, IBD60 and NBD.

New Features and Improvements

  • [SM-2947] Robotics: Torque Limitation

    • [SM-2968] Torque Limitation: Interface for dynamic models

    • [SM-2970] Torque Limitation: Integrate dynamic model into path invariant Halt/Stop

    • [SM-3040] Torque Limitation: Finalize the interface and implementation of SMC_GroupSetDynamics

    • [SM-3041] Torque Limitation: Implement override/scaling factors for torque limits

    • [SM-3897] Torque Limitation: Set torques should be checked

    • [SM-3911] Example for creating and using a dynamic model

    • [SM-3913] Implement SMC_GroupSetLoad

    • [SM-3937] AxisGroup should write fSetTorque if a dynamic model has been configured

    • [SM-3952] AXIS_REF_SM3: It should be possible to configure a torque software limit

    • [SM-3961] Torque Limitation: It should be possible to set the gravitational acceleration vector

    • [SM-3962] Torque Limitation: It should be possible to set a unit conversion factor from user units to meters

    • [SM-3965] Torque Limitation: Adjust dynamic models to consider loads

    • [SM-3984] Torque Limitation: Reset load when a new dynamic model is set

    • [SM-3985] Torque Limitation: Make it possible to define an execution mode for SMC_GroupSetLoad

    • [SM-3997] Torque Limitation: Changing the dynamic model should only be allowed while the axis group is disabled

  • [SM-2436] Detect wrong task configuration: create an axis group error if motion calls are not performed from bus task

  • [SM-2748] SMC_ToolRadiusCorr: Make FB more robust

  • [SM-3530] Detect wrong task configuration: create an axis error if motion calls are not performed from bus task

  • [SM-3623] Parker: Update the Compax3 devices

  • [SM-3763] SMC_ToolRadiusCorr: Restructure the internal state machine

  • [SM-3773] AxisGroup: eliminate m_fMaxBrakeDuration

  • [SM-3815] SM3_Drive_ETC_Parker (Compax 3): Write trigger input for capturing to 4 if not part of SDO config

  • [SM-3841] Detect wrong task configuration for CNC: create an error if CNC function blocks are called from wrong task

  • [SM-3872] MC_GroupHalt/Stop, Tracking: It should be possible to release dynamic coordinate systems after a tracking movement has been stopped

  • [SM-3889] Consolidate CALLED_FROM_WRONG_TASK errors

  • [SM-3923] SM3_Drive_ETC_Delta_R1_EC5621: Avoid sending unsupported SDO read requests on startup

  • [SM-3936] Make it possible to configure the gear ratio for fSetTorque

  • [SM-3996] Integrate new Softmotion driver for CMZ SBD

  • [SM-4044] Kollmorgen: Update the Esi files for AKD2G and AKD-C/N to V02.10.03.000

Major Bug-Fixes

  • [SM-3980] Using a quadratic velocity profile and setting the jerk to 0 may lead to a division by zero exception

  • [SM-4058] After calling SMC3_ReinitDrive, in rare cases acyclic communication may get stuck

Minor Bug-Fixes

  • [SM-2401] MC_Power: Error and ErrorID cannot be reset

  • [SM-2845] SM3_Drive_ETC_JAT_EcoVario, SM3_Drive_CAN_JAT: log error and set FB error if nAxisState is set to errorstop due to bit 11

  • [SM-3688] Driver for Keba KeDrive D3: change name from Keba_LTiMotion_ServoOne to KeDrive D3 where appropriate

  • [SM-3858] Wrong device identification Id in Staubli uniVAL device descriptions

  • [SM-3864] SM_Axis: layout/range of scroll bars does not show all the contents when the window size is reduced

  • [SM-3878] SMC_GroupJog2: In some cases no jogging is performed with ABC_as_ACS

  • [SM-3886] SM3_Robotics: The error SMC_CP_PLANNER_NO_PROGRESS might be reported when multiple axis groups are planning on the same core

  • [SM-3890] Part1 Motion POUs: The Error and ErrorID outputs are blinking during an active axis error and Execute = FALSE

  • [SM-3909] SMC_SmoothPath: eAddAxisMode SPAA_EXACT is missing in offline CNC settings

  • [SM-3922] AXIS_REF_POSCONTROL: By default, if in.bLimitPos/Neg are not written, no hardware limit error should result

  • [SM-3926] SMC_GroupJog2: Large values of MaxAngularDistance lead to a wrong movement of modulo axes

  • [SM-3931] MC_GroupContinue, Tracking: SMC_AXIS_GROUP_CONTINUE_WRONG_POSITION might be reported, even though the axis group is at the correct position

  • [SM-3949] PTP Tracking: possible axis jumps in the start or target position

  • [SM-3957] AutoMoveGantry, Tracking: SMC_PATH_QUEUE_INTERNAL_ERROR during interrupt

  • [SM-3989] MC_EXECUTION_MODE: wrong interpretation of mode queued

  • [SM-4027] SMC_GroupSaveContinueData: Saving continue data for an interrupted axis group is not handled correctly

Compatibility Information

General

This version is compatible with CODESYS V3.5 SP16 and newer. However we recommend the latest patch level of CODESYS V3.5 SP18.

  • [SM-3773] AxisGroup: eliminate m_fMaxBrakeDuration

    Setting the maximum brake duration with SMC_TuneCPKernel has been deprecated. The limitation to a maximum brake duration has been removed from the robotics trajectory planning. As a result, movements with a brake duration of more than 1 second can now be commanded without any tuning.

    Note that existing applications that were limited by the maximum brake duration may behave differently now and result in faster and smoother trajectories.

  • [SM-3858] Wrong device identification Id in Staubli uniVAL device descriptions

    As the Id of the Staubli uniVAL device descriptions has been changed, an update to the newest version is not automatically proposed for existing projects. Please update the uniVAL devices in the device tree to the new Id and version. (The device dialog will show both the old device in version 4.12.0.0 and the new device in version 4.13.0.0 with the same name, as the Ids are different.)

  • [SM-3872] MC_GroupHalt/Stop, Tracking: It should be possible to release dynamic coordinate systems after a tracking movement has been stopped

    With version 4.12.0.0 movements and their references to dynamic coordinate systems were kept in the axis group, even after an MC_GroupHalt/Stop was Done. This allowed continuing from the stop position, but also meant that dynamic coordinate systems that were referenced by those movements remained “InUse”. Starting with version 4.13.0.0, MC_GroupHalt/Stop has the input “ClearMovements” with a default value of TRUE. This means that by default all movements and coordinate system references are cleared once an MC_GroupHalt/Stop reports “Done” and all dynamic coordinate systems will no longer be “InUse”. Setting the “ClearMovements” input to FALSE restores the behavior introduced with version 4.12.0.0 and allows continuing from the stop position using SMC_GroupSaveContinueData and MC_GroupContinue.

  • [SM-3989] MC_EXECUTION_MODE: wrong interpretation of mode queued

    Up until version 4.13.0.0, MC_EXECUTION_MODE was only used for SMC_GroupSetAncillaryAxisLimits and SMC_GroupSetAncillaryPathLimits. For these two function blocks, the implementation of execution mode “Queued” differed from the behavior specified by PLCopen MC Part4. For version 4.13.0.0, the behavior of execution mode “Queued” was changed so that it is in compliance with the PLCopen definition. A new execution mode “NextCommanded” was introduced that implements the previous behavior of execution mode “Queued”.

    According to PLCopen MC Part 4, with execution mode “Queued” “the new functionality becomes valid when all previous motion commands set one of the following output parameters: Done, Aborted or Error”, i.e. have in some way finished. For SMC_GroupSetAncillaryAxisLimits and SMC_GroupSetAncillaryPathLimits, the execution mode “Queued” was implemented such that the ancillary limits became effective once the next commanded movement started. As long as only static coordinate systems are used, this does not make a difference, since the axis group will be in standstill after all previous movements have finished and before the next movement starts. However, it can make a difference when dynamic coordinate systems are used. In this case, the axis group might not be in standstill, but following a moving coordinate system and different ancillary axis limits can affect the movement of the axis group. In particular, different ancillary axis limits can determine whether the axis group is able to follow the dynamic coordinate system.

Information from JIRA

To read up on implemented features and changes you can use your JIRA account. Please find some example filters below.

List of features and changes:

project = “CODESYS SoftMotion” AND fixVersion = 4.13.0.0

List of issues with compatibility information:

project = “CODESYS SoftMotion” AND fixVersion = 4.13.0.0 AND (text ~ COMPATIBILITY_INFORMATION OR text ~ KNOWN_LIMITATIONS)

19.12.2022

Release Note

CODESYS SoftMotion 4.12.0.0 brings support for modulo axes to robotics and improved support for continuing after a MC_GroupStop/MC_GroupHalt, as well as new example projects for CNC (use of additional axes and use of tool length correction).

In the field of PLCopen master/slave blocks, MC_CamIn was revised, especially switching between cam tables.

Support for Staubli model CS9 has been added to the UniVal driver.

Major bugs have been fixed in SMC_SmoothMerge, MC_GroupReset and for PTP movements with a configuration change.

New Features and Improvements

  • [SM-2311] Robotics: Support for modulo-axes

    • [SM-323] Robotics: Handling of modulo-axes

    • [SM-3767] Robotics: Handling of modulo-axes: change meaning of AxisSettings and GetAxisProperties

  • [SM-3665] Resume after MC_GroupHalt/MC_GroupStop: continue at stop position

    • [SM-3696] Resume after MC_GroupHalt/MC_GroupStop: Change halt/stop from movement to state in axis group

    • [SM-3697] Resume after MC_GroupHalt/MC_GroupStop

    • [SM-3701] Resume after MC_GroupHalt/MC_GroupStop: Update AXIS_GROUP_REF_SM3.GetMovementQueueReserve

    • [SM-3714] Resume after MC_GroupHalt/MC_GroupStop: Check and fix library documentation and specification

  • [SM-641] MC_GroupReadActualVelocity/Acceleration, SMC_GroupReadSetVelocity/Acceleration: support for output PathVelocity/PathAcceleration/PathJerk

  • [SM-1924] SMC_ReadNCFile2: include bExecute and bAbort

  • [SM-2496] SMC_GroupJog2: The default value for Vel/Acc/JerkFactor should be 0

  • [SM-2561] Robotics: Make it possible to change the limit of velocity, acceleration, and jerk for each axis

  • [SM-2813] Create an SDK for the SoftMotion AddOn

  • [SM-2979] SM3_Drive_ETC_Parker (Compax 3): update touch probe function by reading source from object 0x2303.0x20

  • [SM-3323] Make it possible to declare and use a local logical axis inside a function block

  • [SM-3324] CNC: allow indirect subprogram calls using string variables instead of the subprogram name

  • [SM-3343] Robotics: function block SMC_GroupAddOffset to add an offset to a position

  • [SM-3509] ElemFunCS_Delta: The function should return an identity frame in case of equal coordinate systems

  • [SM-3627] Robotics: read information about axes (position or orientation axis)

  • [SM-3680] SM3_Drive_ETC_Staubli_uniVAL: support CS9

  • [SM-3681] SMC_ReadNCFile2: make it easier to read from arbitrary streams and to modify the g-code

  • [SM-3699] [Docu] SMC_NCDecoder and SMC_NCInterpreter: document which values of piStartPosition are actually used

  • [SM-3713] SMC_ToolRadiusCorr: make it possible to define an offset for the tool radius

  • [SM-3718] SMC_GroupConvertPosition: The kinematic configuration should be returned when converting from ACS to a cartesian coordinate system

  • [SM-3722] Deprecate SMC3_CaptureDescription.bLatchInController

  • [SM-3723] Generic CiA 402 axis: allow more than 8 drivers per slave if supported

  • [SM-3736] MC_TouchProbe: change default of MC_TRIGGER_REF.iTriggerNumber from -1 to 0 and add check for invalid trigger numbers

  • [SM-3746] MC_MoveSuperimposed: make it possible to halt a superimposed movement

  • [SM-3775] SMC_MovementCommand: Avoid huge data structures on the stack

Major Bug-Fixes

  • [SM-3527] SMC_SmoothMerge: Merging results in an undesired loop movement

  • [SM-3621] SMC_SmoothMerge: Merging of an orientation movement results in an undesired movement of the orientation axis

  • [SM-3745] Jump in axis positions when moving between configurations with PTP movement

  • [SM-3762] Possible AccessViolation after a MC_GroupReset

  • [SM-3823] Finite logical axis below modulo master now behaves like a modulo axis

Minor Bug-Fixes

  • [SM-246] CiA-402 base driver: the generic limit switch checks does not respect Axis.bHWLimitEnable

  • [SM-2270] SMC_GroupJog2: The axisgroup jogs even when an irrelevant axis is fired

  • [SM-2497] SMC_GroupJog2: AxisGroup can start moving in unexpected directions

  • [SM-2739] SMC_ToolRadiusCorr computes wrong path

  • [SM-2774] Possible jump in axis positions aftert MC_GroupContinue

  • [SM-2838] MC_CamIn: periodic tabular cams (byType XYVA) with many points: long runtime if cam period is reached

  • [SM-2929] CNC program can be added to POU window although SoftMotion is disabled

  • [SM-2946] SMC_GroupJog2: reset Error output on falling edge of Enable

  • [SM-2978] PlugIn: There may be multiple implicit General Axis Pool connectors in a project

  • [SM-3104] SMC_GroupJog2: generates error when running onto border of working area

  • [SM-3178] SoftMotion on standard PLC: Logical axis below general axis pool disappears when updating the device

  • [SM-3207] CNC: Wrong errorpos and error Id if a subprogram cannot be found

  • [SM-3239] Settings: Unhandled Exception on creating new project

  • [SM-3313] MC_MoveLinearAbsolute, Override: VelFactor zero “0” can leave the FB in a non-quit state

  • [SM-3330] Jogging in a dynamic PCS which is in standstill might not be possible

  • [SM-3354] Resume after error: Movements do not finish when MC_GroupContinue is used for an aborted interrupt

  • [SM-3451] MC_TouchProbe: May Report Done multiple times for the same trigger event if the touch probe objects are mapped as PDOs

  • [SM-3521] Fix the documentation for wAuxData of SMC_POSINFO

  • [SM-3526] MC_CamIn: Switching cams no longer works as documented

  • [SM-3607] Possible unjustified error SMC_CP_TRAJECTORY_NOT_SMOOTH

  • [SM-3611] MC_TouchProbe: With bFastLatching = FALSE, edge detection of the trigger input should be supported

  • [SM-3624] MC_GroupSetOverride: Setting the override to 0 and then setting it to >0 while the axis group is stopping does not work

  • [SM-3636] SMC_Interpolator: The segmenter is not reset with a rising Execute edge

  • [SM-3652] Single axis movements: possible jumps in trajectory with ramp type sin^2 and blending or aborting

  • [SM-3659] Tracking: Jump in rotary axis (period missmatch) after aborting movement

  • [SM-3668] SMRCP, Planer: AXIS_MAX_VEL constraint does not consider derivatives wrt t

  • [SM-3671] MC_GroupStop: Axis group switches to state “stop_done” without having posted the stop movement yet

  • [SM-3691] MC_SetDynCoordTransform: GetPose does not return exact save-pos for fTime=0 and uses acceleration and jerk for extrapolation

  • [SM-3698] OriPrimLinear: singularity if orientation difference is close to a multiple of 2*pi

  • [SM-3705] Assertion in TrajectoryPlanner.StateMachine because CheckInvariant fails

  • [SM-3706] MC_Home might get stuck in reading the position offset

  • [SM-3710] SMC_AXIS_GROUP_PATH_DEVIATION_TOO_HIGH after continue of position in dynamic PCS

  • [SM-3737] Interrupt/Continue: The first movement after a continue without movement to the continue position is reporting done to early

  • [SM-3739] Update PLC Device from device that has SoftMotion disabled to SoftMotion device (type 0x1006): compile errors

  • [SM-3742] Tracking: When commanding two consecutive MC_GroupInterrupt during tracking, the second one will not finish

  • [SM-3751] SMC_Interpolator may return error SMC_INT_QPROF_DIVERGES

  • [SM-3772] MC_MoveCircularRelative: Coordinate system ACS is not treated correctly

  • [SM-3774] AutoMoveGantry, Multicore: Access violation in ElemFunTrace_StartCycle

  • [SM-3810] SM_Drive_PosControl: default for velocity pilot control is 0 (no velocity pilot control) but should be 1

Compatibility Information

General

This version is compatible with CODESYS V3.5 SP16 and newer. However we recommend the latest patch level of CODESYS V3.5 SP18.

  • [SM-2496] SMC_GroupJog2: The default value for Vel/Acc/JerkFactor should be 0

    The default values of the inputs VelFactor, AccFactor, and JerkFactor of SMC_GroupJog2 have been changed from 1 to 0. Applications that are using SMC_GroupJog2 and did not change the default of these inputs need to be adapted. The reason for the change is that certain jogging movements may be very fast when all factors are 1. For example when jogging in the ACS, the full global axis limtis may be used for the jogging movements.

  • [SM-2561] Robotics: Make it possible to change the limit of velocity, acceleration, and jerk for each axis

    The function block SMC_SetDynamicLimitFactors has been deprecated. Please use SMC_GroupSetAxisLimitFactors or SMC_GroupSetAncillaryAxisLimits instead.

  • [SM-2739] SMC_ToolRadiusCorr computes wrong path

    SMC_ToolRadiusCorr: The order of elements in the out-queue (poqDataOut: SMC_OUTQUEUE) changes compared to previous versions, if (and only if):
    • a correction arc has been inserted between two cartesian elements A and B at an outer corner, and

    • non-cartesian elements (e.g. M-functions) are situated between the two elements.

    In previous versions, the non-cartesian elements were inserted into the queue after the correction arc. However, the position of the non-cartesian elements was set to the start position of the arc. This was a bug and could lead to jumps if no subsequent path processing FB corrected the error (set the position of the non-cartesian elements to the end postion of the arc).

    As of version 4.12.0.0, the arc will always be inserted _after_ the non-cartesian elements right before B. The position of the non-cartesian elements is equal to the start postion of the arc.

    Example: Consider the following G-code:

    N000 G42 D1
    N010 G01 X1 F100 (Ramp-in to A)
    N020 G01 X2 Y0 Z0 (A)
    N030 M4
    N040 M5
    N050 M6
    N060 G01 X2 Y1 Z0 (B)

    With version 4.12.0.0, the output of SMC_ToolRadiusCorr will correspond to the following G-code:

    N000 G01 X1 Y-1 D1 F100 (Ramp-in to A)
    N010 G01 X2 Y-1 Z0 (A)
    N020 M4
    N030 M5
    N040 M7
    N050 G03 X3 Y0 R1 (Correction-Arc)
    N060 G01 X3 Y1 Z0 (B)
  • [SM-3330] Jogging in a dynamic PCS which is in standstill might not be possible

    SMC_GroupJog2 now reports an error when trying to jog in a dynamic coordinate system.

  • [SM-3767] Robotics: Handling of modulo-axes: change meaning of AxisSettings and GetAxisProperties

    The treatment of rotary axis limits has been changed. For existing applications this can lead to a change in the path of the robot in certain cases, especially if the software limits for rotary axes have not been set in the SoftMotion drive editor (tab “General”).

    Important: when upgrading to 4.12.0.0, make sure all SoftMotion drives have suitable software limits set before moving the robot. Existing motion programs must be tested again, preferably with reduced velocity.

    For authors of kinematic function blocks, the handling of axis limits has been simplified. The interface ISMKinematicAxisSettings no longer needs to be implemented, except for the rare cases where the axis limits are needed for the kinematic transformation. In the method GetAxisProperties, which is still required if the kinematics contains rotary joints, no limits should be returned, except for the rare case that the rotary joint should be limited to a specific range. (Note that such a limit will make it impossible to connect a modulo axis to the joint.)

Information from JIRA

To read up on implemented features and changes you can use your JIRA account. Please find some example filters below.

List of features and changes:

project = “CODESYS SoftMotion” AND fixVersion = 4.12.0.0

List of issues with compatibility information:

project = “CODESYS SoftMotion” AND fixVersion = 4.12.0.0 AND (text ~ COMPATIBILITY_INFORMATION OR text ~ KNOWN_LIMITATIONS)

08.07.2022

Release Note

SoftMotion 4.11.0.0 brings improved tracking of conveyor belts and rotary tables for Robotics, several new and improved functions for single axes, new drivers for servo drives as well es many bug fixes.

Especially for Robotics, this is a major update. Please take care when updating existing applications. See the section “Compatibility Information” below for details.

New Features and Improvements

  • [SM-2276] Improved CP-Tracking for Pick&Place applications

    • [SM-961] CP-Tracking: Support orientation interpolation mode “Axis” also for CP-Tracking

    • [SM-2159] CP-Tracking: support pure orientation movements

    • [SM-2160] CP-Tracking: support orientation mode Axis

    • [SM-2161] CP-Tracking: support elements that are not parametrized by arc length

    • [SM-2162] CP-Tracking: support improved cartesian composite blending

    • [SM-2235] CP-Tracking: improve blending if tangent and curvature matches

    • [SM-2259] CP-Tracking: MC_GroupStop/MC_GroupHalt, CP-Tracking: immediate braking with given dynamic limits

    • [SM-2697] CP-Tracking: Implement PTP_PI Tracking

    • [SM-2707] CP-Tracking: implement OriPrimAxis for tracking

    • [SM-2709] CP-Tracking: Composite blending for orientation mode axis

    • [SM-2765] CP-Tracking: implement aborting

    • [SM-2955] Remove PTP kernel (support for PTP fast movements)

    • [SM-2988] SMC_GroupJog: implement based on new CP-Tracking kernel and deprecate

    • [SM-3021] CP-Tracking: Unify blending to composite blending

    • [SM-3100] CP-Tracking: Check the conditions for not inserting a blending element

    • [SM-3173] CP-Tracking: Handle Interrupt/Continue while moving between dynamic coordinate systems

    • [SM-3279] CP-Tracking: Implement the De Boor algorithm to improve interpolation of dynamic coordinate system states

    • [SM-3306] SMC_AxisGroup_Tracker: a movement should only report done if the tracker is also done

    • [SM-3460] CP-Tracking: Implement replacement for “aRefElem” in axis space elements

    • [SM-3471] CP-Tracking, OriPrimLinear: Handle orientation changes > 180°

  • [SM-80] Logical Axis: Improve filter

  • [SM-101] Integrate driver for Nidec ControlTechniques Unidrive M

  • [SM-2516] Switch SoftMotion Package to Core Separation and SP16 SDK

  • [SM-2558] Integrate Keba drive ServoOne CM

  • [SM-2577] Improve the behavior of MC_GroupHalt/Stop with low dynamics

  • [SM-2644] Robotics: path velocity, acceleration, and jerk should be accessible, SMC_GroupReadPathDynamics

  • [SM-2916] Build: SoftMotion package must be signed

  • [SM-2934] Robotics: create function blocks SMC_GroupReadSetJerk

  • [SM-2940] Robotics, CP: Synchronize movement queues between bustask and planner together with the various requests in an Atomic_SRSW

  • [SM-2956] Robotics: Deprecate SMC_SetMovementQueueBuffer

  • [SM-2982] SoftMotion: Subcategory for delta drives different from other delta Ethercat Slaves

  • [SM-2993] Blending: Improve blending between straight lines with a 90 degree angle

  • [SM-2994] SM3_Transformation: Support custom position limits for all axes of Kin_Pos_RRR and Kin_Wrist3

  • [SM-3061] MC_GroupReset should always reset axis errors

  • [SM-3086] Command “Enable SoftMotion”: don’t use first free connector-id (GetFreeConnectorId)

  • [SM-3105] Bosch Rexroth IndraDrive CS: add link to application note to drive documentation

  • [SM-3107] Integrate Kollmorgen AKD2G Drive

  • [SM-3108] Integrate kollmorgen AKD-N/C Drive

  • [SM-3109] Integrate kollmorgen MKD-N/C Drive

  • [SM-3110] Integrate Panasonic A6 Multi Drive

  • [SM-3112] Integrate the new Devdescs for Panasonic MINAS A6B

  • [SM-3157] SMC_SolveTwoRotJoint should return exactly the same angles for elbow low/high up to a constant offset

  • [SM-3220] Resume after error: An active interrupt(At) should be saved in the continue data for resume after error

  • [SM-3310] Add possibility to query movement id of interrupt position from continue data

  • [SM-3349] SMC_TrackSetValues: new part 1 function block to track a signal given limits on velocity, acceleration, and jerk

  • [SM-3446] Integrate Nidec ControlTechniques UniDrive M

Bug-Fixes

  • [SM-1156] MC_GroupInterrupt, MC_GroupContinue, SMC_GroupSaveContinueData, Resume after Error: possible jump in axis position for PTP tracking movements

  • [SM-1960] CP: OrientationMode Axis: bad blending elements in case of differing ori/cart-ratio

  • [SM-2221] CP-Tracking: SMC_GroupWait does not work with wait times that are smaller than or a multiple of the cycle time

  • [SM-2458] CP-Tracking: MC_GroupContinue only works if called _after_ the PCS has been updated

  • [SM-2470] CP-Tracking: error in circular movement not propagated to axis group and movement function block

  • [SM-2517] CP, PTP_PI: MC_GroupInterrupt can influence the start position of an aborting movement

  • [SM-2522] AutoMoveGantry: Rotary axis range violation

  • [SM-2592] AutoMoveGantry: Axis limit violation after continue

  • [SM-2636] Scaling/Mapping page: setting of motor type (linear / rotary) is not persisted

  • [SM-2647] CutEndDistMode may fail, leading to buffered movement and assertions in the test

  • [SM-2677] PTP, TMCornerDistance: Finding Point A fails

  • [SM-2756] AutoMoveGantry: GetARefForPos fails because of missing cache element

  • [SM-2864] AxisGroup: Endless Moving-State if multiple constant movements are commanded

  • [SM-2930] “SoftMotion General Axis Pool” has red error icon if device diagnosis is turned off

  • [SM-2939] SMC_TRAFO_Tripod_Arm creates cyclic license missing messages

  • [SM-2954] Possible Assertion reading the continue data: GetCacheElemByS fails if Halt is executed shortly before end of segment

  • [SM-2963] Robotics, CPTR: SMC_AXIS_GROUP_CONTINUE_WRONG_POSITION during continue

  • [SM-2976] EtherCAT Mapping information: IECATPdoItemEntry without channel should be ignored

  • [SM-2977] Error SMC_TRAFO_INVALID_CONSTELLATION in RobotFactory project

  • [SM-2991] MC_GroupInterrupt: Interrupt may halt at wrong interrupt position and save invalid continue data

  • [SM-3008] SMC_CP_Planning: Problems with aborting movement after previous movement is done and the aborting movement is commanded in a different CS

  • [SM-3009] Inst_MC_MoveLinearAbsolute: Problem with aborting movements and a transition between coordinate systems

  • [SM-3015] PTP Movements: error SMC_CP_INVALID_PATH_ELEM for very short movements

  • [SM-3016] PTP movements commanded in ACS: exact end position is not reached

  • [SM-3017] Robotics: unexpected error SMC_AXIS_GROUP_IDLE_WAIT_AXES_MOVING when commanding a movement and the axes are not powered on

  • [SM-3025] Robotics: Assertion in StateMaching_SetAxisStartPos if first commanded movement is PTP_PI with length 0

  • [SM-3026] PTP_PI: Assertion if the target position in ACS is outside the software limits

  • [SM-3053] MC_GroupInterrupt is not working during an active SMC_GroupWait

  • [SM-3062] AutoMoveGantry: SMC_CP_TRAJECTORY_NOT_SMOOTH

  • [SM-3068] Axis limit violation when starting a movement after having stopped and saved continue data

  • [SM-3074] CNC: SMC_ComputeTangentAngle might return NaN if tangents are codirectional

  • [SM-3091] SMC_GroupReadPlanningStatistics: Valid output is never set

  • [SM-3096] Description of input ABC_as_ACS of SMC_GroupJog2 is not clear

  • [SM-3117] The PathOut queue of the TrajectoryPlanner cannot handle a full PathIn queue, when the lookahead is at the end of the PathQueue

  • [SM-3121] Pause position in continue data

  • [SM-3126] CP_HaltStop: Assertion in InterpolateProfile

  • [SM-3144] LREAL_TO_DWORD with negative values may lead to errors

  • [SM-3168] Saving of continue data is very slow

  • [SM-3191] Robotics: Reproducibility: trajectory may differ if Trj_EvalCache is cut

  • [SM-3204] SMC_TRAFO_Tripod_Arm: z-coordinate is ignored

  • [SM-3206] Robotics: Blending elements: check if curvature is too high may use wrong interpolation parameter limits

  • [SM-3229] Possible error SMC_CP_ROTARY_AXIS_RANGE_VIOLATION with orientation mode axis

  • [SM-3230] SMC_GroupJog2: VelFactor, AccFactor and JerkFactor are not taken into account when jogging in ACS and outside of the working area

  • [SM-3231] An aborting movement from standstill may lead to an error

  • [SM-3233] Possible error SMC_CP_ROTARY_AXIS_PERIOD_MISMATCH with MC_MoveDirectRelative and very high dynamics

  • [SM-3235] SMC_FreeEncoder: fActVelocity, fSetVelocity, fActAcceleration, and fSetAcceleration are always 0 in simulation

  • [SM-3268] Cache, AxisBlending: Periods may be missed because of too few slots in the cache

  • [SM-3271] ResumeAfterError: Blocking movement if AddNewMovement fails

  • [SM-3273] Internal error SMC_CP_TRAJECTORY_NOT_SMOOTH

  • [SM-3309] PATH_DEVIATION_TOO_HIGH in Part4MotionTest “117_PTP_Override”

  • [SM-3317] CNC: SMC_CheckForLimits does not return correct iSourceLine_No

  • [SM-3325] ResumeAfterError: An active SMC_GroupInterruptAt should not result in a complete reset after a continue

  • [SM-3331] IControlCreation.CreateKinematicsSelector: if IsToolKinematics is TRUE, then only orientation kinematics should be shown

  • [SM-3352] SMC_Quat1_RotDist between the same quaternion does not always return exactly 0

  • [SM-3371] MC_ReadActualTorque: negative torque values not converted correctly for standard SoE driver

  • [SM-3379] MC_GearInPos: Sync in wrong master period and no immediate start of synchronisation with modulo master and MasterStartDistance=0

  • [SM-3466] CP-Tracking, SMC_GroupReadSetPosition returns incorrect values during tracking

  • [SM-3578] Movements that are called multiple times in a cycle might result in duplicate movement queue entries

  • [SM-3603] Possible assertion in Trj_Cycler

Compatibility Information

General

This version is compatible with CODESYS V3.5 SP16 and newer. However we recommend the latest patch level of CODESYS V3.5 SP17.

  • [SM-80] Logical Axis: Improve filter

    The position and velocity filter of the logical axis has been reworked and improved. For the same settings, it should produce better results. In particular, the fActVelocity now better matches the fActPosition and noise on fActPosition is reduced effectively. For existing applications that use the logical axis to filter e.g. encoder values, please check your filtered signals using the trace to make sure you get the desired behavior with the improved filters.

  • [SM-2516] Switch SoftMotion Package to Core Separation and SP16 SDK

    The SoftMotion package version 4.11.0.0 requires at least CODESYS version 3.5.16.0.

  • [SM-2955] Remove PTP kernel (support for PTP fast movements)

    The input MovementType of MC_MoveDirectAbsolute and MC_MoveDirectRelative has been deprecated. It will be removed in a future version. The movement type SMC_PTP_MOVEMENT_TYPE.Fast is no longer supported. Only the movement type SMC_PTP_MOVEMENT_TYPE.PTP_PI is supported.

    Important: applications using the movement type Fast need to be tested after switching to SoftMotion 4.11.0.0.

  • [SM-2956] Robotics: Deprecate SMC_SetMovementQueueBuffer

    Using SMC_SetMovementQueueBuffer will now lead to a compile warning stating that the function block is obsolete and will no longer be available in future versions of SoftMotion.

  • [SM-2988] SMC_GroupJog: implement based on new CP-Tracking kernel and deprecate

    The function block SMC_GroupJog has been deprecated and is superseded by SMC_GroupJog2. It is strongly recommended to use SMC_GroupJog2 for new projects and to change existing applications from SMC_GroupJog to SMC_GroupJog2.

    SMC_GroupJog no longer supports the input ABC_as_ACS. If this feature is required, please switch to SMC_GroupJog2.

  • [SM-3021] CP-Tracking: Unify blending to composite blending

    Robotics: The blending between movements has been changed. The same shape of blending is now applied, no matter what kind of movement (tracking or static, orientation mode axis or great circle). This means that the path of the TCP may (slightly) change during blending compared to previous versions of SoftMotion. Please test your application carefully when updating to this version.

  • [SM-3100] CP-Tracking: Check the conditions for not inserting a blending element

    No blending element is inserted between two movements with matching tangent and curvature. Example: two semi circles commanded using MC_MoveCircularAbsolute to achieve a full circle. Another example: two straight lines having the same slope.

    With this change, blending is only omitted if all of the following conditions are met:
    • both movements are CP movements (MC_MoveLinear*, MC_MoveCircular*), and

    • both movements have been commanded in the same coordinate system, and

    • the start position of the first movement is also given in the same coordinate system, and

    • the movements don’t use orientation mode “Axis”.

  • [SM-3325] ResumeAfterError: An active SMC_GroupInterruptAt should not result in a complete reset after a continue

    If an error occurs while MC_GroupInterrupt or SMC_GroupInterruptAt are active and SMC_GroupEnableResumeAfterError is enabled, the interrupt is now saved in the continue data of SMC_GroupEnableResumeAfterError. When continuing using this continue data, the interrupt will be executed.

  • [SM-3542] CP-Tracking, Interrupt/Continue: Rotary axes can jump to a different period after a continue

    Using MC_GroupContinue to continue from a position in a dynamic PCS now requires updating the continue data using SMC_GroupUpdateContinueData.

  • [SM-3065] CP-Tracking: support for relative movements with (static) cartesian start position and ACS distance

    There are restrictions on relative movements in combination with tracking. Relative movements are not supported in the following cases:

    1. The start position (end position of preceding movement) and distance of the relative movement are given in two different coordinate systems (CS) with at least one being dynamic, or

    2. the relative movement is an aborting movement and aborts an active

      • track-in (from a static CS to a dynamic CS),

      • track-out (from a dynamic CS to a static CS), or

      • re-track (from a dynamic CS to another dynamic CS) movement.

    The errors SMC_RELATIVE_MOVEMENT_TRACKING_CS or SMC_RELATIVE_MOVEMENT_ABORTING_TRACKING will be reported.

  • [SM-3252] TMCornerDistance for tracking PTP movements

    In case of tracking with PTP movements, the corner distance is evaluated when the axis group plans the trajectory on the blended path. This happens shortly before the axis group travels the path.

    Consequently, when the axis group travels the blending, the distance may be slightly different, depending on the movement of the tracked coordinate system.

  • [SM-3269] CP-Tracking: Circular movements not supported between different dynamic coordinate systems

    Commanding of circular movements (MC_MoveCircularRelative, MC_MoveCircularAbsolute) in combination with tracking (e.g. MC_TrackConveyorBelt) has the following restrictions:

    1. If the BufferMode is Buffered or a blending mode, then the circular movement must be commanded in the same coordinate system as the previous movement

    2. If the BufferMode is Aborting, then the circular movement must be commanded in the same coordinate system as the active movement

    3. If the BufferMode is Aborting, and the active movement is a (tracking) PTP movement, then no circular movement is supported.

Known Limitations

  • [SM-2314] MC_GroupStop/MC_GroupHalt, CP: immediate braking with given dynamic limits MC_GroupHalt of CP movements cannot be aborted. A subsequent movement is always treated as buffered.

Information from JIRA

To read up on implemented features and changes you can use your JIRA account. Please find some example filters below.

List of features and changes:

project = “CODESYS SoftMotion” AND fixVersion = 4.11.0.0

List of issues with compatibility information:

project = “CODESYS SoftMotion” AND fixVersion = 4.11.0.0 AND (text ~ COMPATIBILITY_INFORMATION OR text ~ KNOWN_LIMITATIONS)

23.02.2022

Release Note

CODESYS SoftMotion 4.10.0.0 improves the robotics jogging function blocks and contains bug fixes.

New Features and Improvements

  • [SM-2805] Robotics: Improve jogging

    • [SM-2779] SMC_GroupJog/ SMC_GroupJog2: Make it possible to jog around the X/Y/Z axis in TCS

    • [SM-2854] Improve jogging of orientation

    • [SM-2873] SMC_GroupJog2: remove/deprecate input OrientationMode

    • [SM-2883] SMC_GroupJog/SMC_GroupJog2: Improve FB documentation

    • [SM-2890] Jogging FB visus: update visu templates

    • [SM-2892] SMC_GroupJog2: Improve accuracy of reported error messages

  • [SM-2876] Robotics: SMC_GroupInterruptAt

    • [SM-2893] Robotics: SMC_GroupInterruptAt: New FB and visu template

    • [SM-2894] Robotics: SMC_GroupInterruptAt: Extend the CP planner to notify the fineinterpolator about the interrupt position in the sample queue

    • [SM-2895] Robotics: SMC_GroupInterruptAt: Implementation in CP planner

  • [SM-2899] CP, Planner: Improve debug and diagnosis functions

  • [SM-2909] DeviceEditorSoftMotion: add interface that allows third party EtherCAT configurators to provide the PDO mapping for slaves

Major Bug-Fixes

  • [SM-2472] SM3_Drive_CAN_Infranor and SM3_Drive_ETC_Infranor: SetPosition increases on Hardware Limit

  • [SM-2737] SMC_GroupJog2: Orientation mode Axis and ABC_as_ACS do not work in cartesian coordinate systems other than MCS

  • [SM-2907] “Enable SoftMotion” hides other connectors in PLC device

Minor Bug-Fixes

  • [SM-253] SM3_Drive_CAN_Schneider_Lexium32: FB ReInitDrive does not work when MC_ReadAxisError is busy

  • [SM-2369] SM3_ETC_ITF: Startup SDOs not correctly added to list

  • [SM-2771] SMC_GroupJog2: Jogging in TCS is erroneous

  • [SM-2772] SM3_Robotics_Visu: ComboBox entries not selectable + improvements for jogging

  • [SM-2777] SMC_GroupJog: Jogging in TCS with ABC_as_ACS does not work

  • [SM-2799] SMC_GroupJog2: Cartesian coordinate system and ABC_as_ACS = FALSE: orientation axes may rotate in unexpected direction

  • [SM-2802] SMC_GroupJog2: “AutomaticRotaryPeriods” are not considered

  • [SM-2834] CP-Tracking: axis limit violation with composite blending for orientation elements

  • [SM-2852] Part 1 function blocks: Done, Error and CommandAborted output is not immediately reset on Execute = FALSE

  • [SM-2860] SMC_GroupJog2: maxAngularDistance 360 deg behaves like 0 deg, 359 deg and 361 deg behave unexpectedly

  • [SM-2870] CP: planner may not accept any movements in case of m_ErrorIDNewMovement <> SMC_NO_ERROR

  • [SM-2875] CNC: SMC_NCTokenizer: tokenizer does not react correctly to stream.EOS

  • [SM-2882] SMC_GroupJog2: jogging X/Y/Z in TCS results in error SMC_CP_CONFIGS_DIFFER frequently

  • [SM-2897] Robotics: wrong check of axis limits for orientation mode axis and jogging with ABC_as_ACS = TRUE

  • [SM-2905] Possible null-reference exception in FindParentETC_Slave FindParentETC_Slave

  • [SM-2906] SMC_DSP402_ConvertReceivedParameter: status word of previous cycle is used

  • [SM-2926] Possible assertion when resuming with MC_GroupContinue after MC_GroupStop

  • [SM-2927] MC_GroupContinue during active MC_GroupStop results in AXIS_LIMIT_VIOLATION

Compatibility Information

General

This version is compatible with CODESYS V3.5 SP11 and newer. However we recommend the newest patch level of CODESYS V3.5 SP16.

  • [SM-2852] Part 1 function blocks: Done, Error and CommandAborted output is not immediately reset on Execute = FALSE

    We fixed an accident introduced in version 4.7.0.0 with SM-2086 for our single axis and master/slave motion function blocks such as MC_MoveAbsolute. On a falling edge of the Execute input, the outputs Done, Error, and CommandAborted would stay TRUE for one more cycle. With this fix, we restored the correct behavior. Now the Done, Error, and CommandAborted outputs are reset immediately with the falling edge of Execute. This is the behavior of versions prior to 4.7.0.0.

  • [SM-2854] Improve jogging of orientation

    Jogging of the orientation with the function blocks SMC_GroupJog and SMC_GroupJog2 has been improved. The behavior has changed only for the case that the input ABC_as_ACS is FALSE.

    Previously, the ZYZ euler angles were jogged, leading to unpredictable and unintuitive reorientation movements. The improved behavior is as follows: A will rotate the TCP around the X-axis of the configured coordinate system (MCS, WCS, PCS, or TCS). B and C will rotate the TCP around the Y- and Z-axis of that same coordinate system.

  • [SM-2873] SMC_GroupJog2: remove/deprecate input OrientationMode

    The input SMC_GroupJog2.OrientationMode has been deprecated and will be removed in a future version. Please adapt your code accordingly. If ABC_as_ACS is TRUE, then internally the orientation mode “Axis” is used. Otherwise, orientation mode “GreatCircle” is used.

  • [SM-2885] SMC_GroupJog2: Negative MaxLinear/AngularDistance reverses the jogging direction

    The function block SMC_GroupJog2 now creates the error SMC_GROUPJOG2_MAX_DISTANCE_NON_POSITIVE if either (or both) of the inputs MaxLinearDistance and MaxAngularDistance is non-positive.

Known Limitations

  • [SM-2314] MC_GroupStop/MC_GroupHalt, CP: immediate braking with given dynamic limits MC_GroupHalt of CP movements cannot be aborted. A subsequent movement is always treated as buffered.

  • [SM-1901] ETC Drives using modular slaves not working with CODESYS SP13 and SP14 if SlotIndexIncrement is not 0. The mapping of drive objects in the Scaling/Mapping page of SoftMotion drives is computed incorrectly for some EtherCAT slaves and CODESYS versions. This happens if (and only if) all of the following conditions are met:

    • The slave is a multi axis slave, and

    • the slave uses modules, and

    • the attribute SlotIndexIncrement (in the ESI file) of the axis modules is not 0, and

    • the CODESYS version is below 3.5.15.0.

Information from JIRA

To read up on implemented features and changes you can use your JIRA account. Please find some example filters below.

List of features and changes:

project = “CODESYS SoftMotion” AND fixVersion = 4.10.0.0

List of issues with compatibility information:

project = “CODESYS SoftMotion” AND fixVersion = 4.10.0.0 AND (text ~ COMPATIBILITY_INFORMATION OR text ~ KNOWN_LIMITATIONS)

24.02.2021

Release Note

CODESYS SoftMotion 4.9.0.0 brings important bug fixes and improvements.

Improvements

  • [SM-2712] Make SoftMotion work on PLCs with all target types, not only the SoftMotion target type 16#1006

  • [SM-2619] Kin_Wrist2: allow an offset in x, y and z between first axis of rotation (A) and second axis of rotation (B)

  • [SM-2610] Kin_Wrist2: allow tool offsets in X/Y with SMC_GroupSetTool if flange of position kinematics is constant

  • [SM-2617] Kin_ArticulatedRobot_6DOF: extend kinematics to support axis offsets

  • [SM-2711] Make it possible to filter log messages of SoftMotion by logger class

Major bug-fixes

  • [SM-2781] SM3_Drive_ETC: SDO read and write FBs don’t receive falling edge on xExecute after xDone/xError. This can lead to axes not working if many EtherCAT drives are used and many SDO requests are issued. (E.g. an application with 50 drives where the mode of operation and mode of operation display objects are not mapped by PDO.)

  • [SM-2710] SMC_ToolRadiusCorr computes wrong path if lines are orthogonal

  • [SM-2704] CPTR: Assertion Failure in GetPose of Kernel_CPTR

  • [SM-2671] MC_TrackConveyorBelt does not support logical axes

  • [SM-2670] Wrong Velocity calculation in driver for Delta ASDA A3 and B3

20 minor bugs have been fixed.

Supported drives

  • [SM-2826] Support for Bosch Rexroth Indradrive (EtherCAT, CoE)

  • [SM-2675, SM-2679] Delta IO – R1-EC5621: touch probe support, set the correct input pulse mode on the drive startup

  • [SM-143] Schneider Lexium32 CAN+EtherCAT: update to new device description and firmware (V01.28.03)

  • [SM-2782] Infranor PAC, CMZ LBD: Log messages about capture channels should be DEBUG, not INFO

  • [SM-2778] Schneider Lexium 28: Bugfix: no reset possible after homing is interrupted by a limit switch

  • [SM-2722] Parker Compax3: Log messages about startup SDOs and firmware info should be DEBUG, not INFO

  • [SM-2651] Parker PSD: Update to new device description

  • [SM-2167] Panasonic A6B: Update to new ESI file and integrate the drive

Compatibility Information

General

This version is compatible with CODESYS V3.5 SP11 and newer. However we recommend the newest patch level of CODESYS V3.5 SP16.

  • [SM-2712] Make SoftMotion work on PLCs with all target types, not only the SoftMotion target type 16#1006. SoftMotion can now be used on standard PLCs. This means that SoftMotion objects such as Cam tables, CNC programs, and axis groups can be added to standard PLCs. For a standard PLC, SoftMotion is initially not enabled. It can be enabled using a new command “Enable SoftMotion” or by adding a SoftMotion object or drive. Once it is enabled, the SoftMotion libraries will be added to the library manager automatically, just like for a SoftMotion PLC. A “General Axis Pool” for virtual axes, free encoders and position controllers will be inserted below the PLC device. Note that an update from an existing SoftMotion PLC to a standard PLC is now possible without losing the “General Axis Pool” and the axes configured there. During the update, SoftMotion will be enabled for the standard PLC and the “General Axis Pool” will be preserved.

  • [SM-2819] Issuing a CP movement when the axis group is following the PCS and no movement is active results in error. As long as an axis group follows a dynamic coordinate system, the group state will remain “GroupMoving”. This is in contrast to previous versions, where the axis group would switch to state “GroupStandby” if it was in standstill relative to the moving coordinate system.

  • [SM-2817] SMC_GroupEnableResumeAfterError: there should be an Active output signaling that continue data is being written. If a falling edge of the input SMC_GroupEnableResumeAfterError.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.

Known Limitations

  • [SM-2314] MC_GroupStop/MC_GroupHalt, CP: immediate braking with given dynamic limits MC_GroupHalt of CP movements cannot be aborted. A subsequent movement is always treated as buffered.

  • [SM-1901] ETC Drives using modular slaves not working with CODESYS SP13 and SP14 if SlotIndexIncrement is not 0. The mapping of drive objects in the Scaling/Mapping page of SoftMotion drives is computed incorrectly for some EtherCAT slaves and CODESYS versions. This happens if (and only if) all of the following conditions are met:

  • The slave is a multi axis slave, and

  • the slave uses modules, and

  • the attribute SlotIndexIncrement (in the ESI file) of the axis modules is not 0, and

  • the CODESYS version is below 3.5.15.0.

Information from JIRA

To read up on implemented features and changes you can use your JIRA account. Please find some example filters below.

List of features and changes:

project = “CODESYS SoftMotion” AND fixVersion = 4.9.0.0

List of issues with compatibility information:

project = “CODESYS SoftMotion” AND fixVersion = 4.9.0.0 AND (text ~ COMPATIBILITY_INFORMATION OR text ~ KNOWN_LIMITATIONS)

15.12.2020

Release Note

CODESYS SoftMotion 4.8.0.0 brings important bug fixes and support for more drives.

Major bug-fixes

  • [SM-2501] Kin_Tripod_Rotary, SMC_TRAFO_Tripod_Arm, and SMC_TRAFOF_Tripod_Arm: MCS not documented properly

  • [SM-2584] CP, Halt/Stop: Vel, Acc and JerkFactor are applied twice

  • [SM-2605] MC_Moverelative that finishes in one cycle may output wrong target position

  • [SM-2615] MC_Home: possibly wrong fSetPosition after homing if a 32-bit overflow has occurred

  • [SM-2618] SMC_GroupJog2: Algorithm for finding the working space limits does not work correctly

  • [SM-2631] SMC3_CiA_DSP402_StateMachine: State machine may get stuck if SET_OPMODE times out

12 minor Bugs have been fixed.

Supported drives

  • [SM-2633] New driver for Delta remote IO - R1-EC5621

  • [SM-2417] New driver for Beckhoff EL7041 and EL7047

Compatibility Information

General

This version is compatible with CODESYS V3.5 SP11 and newer. However we recommend the newest patch level of CODESYS V3.5 SP16.

The use of the operator __CHECKLICENSEBIT() (necessary for SM-2571) made it necessary to require at least version 3.5.11.0 of CODESYS. As a consequence, the minimum supported CODESYS version has been increased from 3.5.9.50 to 3.5.11.0.

Known Limitations

  • [SM-2314] MC_GroupStop/MC_GroupHalt, CP: immediate braking with given dynamic limits MC_GroupHalt of CP movements cannot be aborted. A subsequent movement is always treated as buffered.

  • [SM-1901] ETC Drives using modular slaves not working with CODESYS SP13 and SP14 if SlotIndexIncrement is not 0. The mapping of drive objects in the Scaling/Mapping page of SoftMotion drives is computed incorrectly for some EtherCAT slaves and CODESYS versions. This happens if (and only if) all of the following conditions are met:

  • The slave is a multi axis slave, and

  • the slave uses modules, and

  • the attribute SlotIndexIncrement (in the ESI file) of the axis modules is not 0, and

  • the CODESYS version is below 3.5.15.0.

Not released / Not tested

  • Device Application Support. The usage of axis groups in child applications is not supported. See SM-847. Not released

10.08.2020
Version Release Notes Release date

Release Note

CODESYS SoftMotion 4.7.0.0 brings buffer modes to the single axis and master slave function blocks. Additionally, many bugs have been fixed.

New Features

  • [SM-2068] BufferMode for Part 1 function blocks

  • [SM-2333] Robotics: new polar kinematics with z-axis

Major bug-fixes

Only bugs not patched in version 4.6.2.0 or 4.6.3.0 are listed.

  • [SM-2364] Exception when fEditorSlaveMin is set for “0” (CAM_TABLE_INVALID_SLAVE_MINMAX)

  • [SM-2418] Atomic_SRSW_W: Read method returns inconsistent values

  • [SM-2457] CPTR: Assertion in SMC_MotionKernel_CPTR.GetPose after MC_GroupInterrupt

  • [SM-2513] MC_CamIn: Potential AccessViolation if more than three tappets are used in parallel

  • [SM-2515] MC_MoveSuperimposed: jump in axis position if the underlying movement changes the owner and the aborting FB is called before MC_MoveSuperimposed

  • [SM-2521] SML_Drive_ETC: readSDO/writeSDO function block needs to be called with xExecute=FALSE after successful completion

  • [SM-2524] CNC: Interpreter stack overflow if subprogram uses local variables

  • [SM-2530] SMC_MoveContinuousAbsolute/Relative may reach end velocity at wrong position (ramp type trapez, acceleration <> deceleration)

  • [SM-2531] MC_MoveAbsolute / MC_MoveRelative + MC_MoveSuperimposed: possible jump in set position if superimposed movement finished one cycle before underlying movement

33 minor Bugs have been fixed.

Supported drives

  • [SM-2234] New driver for Delta ASDA A3 / B3 drive

Compatibility Information

General

This version is compatible with CODESYS V3.5 SP9 Patch 5 and newer. However we recommend the newest patch level of CODESYS V3.5 SP15. Using axis groups in simulation-mode requires compiler version 3.5.10.40 or later.

  • [SM-2364] Exception when fEditorSlaveMin is set for “0” (CAM_TABLE_INVALID_SLAVE_MINMAX). MC_CamTableSelect now fails with ErrorID
    • SMC_CAM_TABLE_INVALID_MASTER_MINMAX, if in the passed CamTable fEditorMasterMax <= fEditorMasterMin or fTableMasterMax <= fTableMasterMin.

    • SMC_CAM_TABLE_INVALID_SLAVE_MINMAX, if in the passed CamTable fEditorSlaveMax <= fEditorSlaveMin or fTableSlaveMax <= fTableSlaveMin.

  • [SM-2422] Compatibility: changes in project if the SM package is increased to 4.6.1.0. Logging in to an application downloaded with SoftMotion 4.6.1.0 installed may require an online change when logging in with SoftMotion 4.7.0.0.

Known Limitations

  • [SM-2314] MC_GroupStop/MC_GroupHalt, CP: immediate braking with given dynamic limits. MC_GroupHalt of CP movements cannot be aborted. A subsequent movement is always treated as buffered.

  • [SM-1901] ETC Drives using modular slaves not working with CODESYS SP13 and SP14 if SlotIndexIncrement is not 0. The mapping of drive objects in the Scaling/Mapping page of SoftMotion drives is computed incorrectly for some EtherCAT slaves and CODESYS versions. This happens if (and only if) all of the following conditions are met:
    • The slave is a multi axis slave, and

    • the slave uses modules, and

    • the attribute SlotIndexIncrement (in the ESI file) of the axis modules is not 0, and

    • the CODESYS version is below 3.5.15.0.

Not released / Not tested

  • Device Application Support. The usage of axis groups in child applications is not supported. See SM-847. Not released.

28.05.2020

Release Note

CODESYS SoftMotion 4.6.3.0 is a bug-fix release. It fixes a major bug in the SMC_GroupJog2 function block.

  • [SM-2480] SMC_GroupJog2: Jogging with ABC_as_ACS does not work correctly

  • [SM-2479] SMC_GroupJog2: possible error “SMC_CP_INVALID_PATH_ELEM” if orientation mode Axis is used

Compatibility Information

General

This version is compatible with CODESYS V3.5 SP9 Patch 5 and newer. However we recommend the newest patch level of CODESYS V3.5 SP15. Using axis groups in simulation-mode requires compiler version 3.5.10.40 or later.

Known Limitations

  • [SM-2314] MC_GroupStop/MC_GroupHalt, CP: immediate braking with given dynamic limits. MC_GroupHalt of CP movements cannot be aborted. A subsequent movement is always treated as buffered.

  • [SM-1901] ETC Drives using modular slaves not working with CODESYS SP13 and SP14 if SlotIndexIncrement is not 0. The mapping of drive objects in the Scaling/Mapping page of SoftMotion drives is computed incorrectly for some EtherCAT slaves and CODESYS versions. This happens if (and only if) all of the following conditions are met:
    • The slave is a multi axis slave, and

    • the slave uses modules, and

    • the attribute SlotIndexIncrement (in the ESI file) of the axis modules is not 0, and

    • the CODESYS version is below 3.5.15.0.

Not released / Not tested

  • Device Application Support. The usage of axis groups in child applications is not supported. See SM-847. Not released.

16.03.2020

Release Note

CODESYS SoftMotion 4.6.2.0 is a bug-fix release.

  • [SM-2429] Compatibility: changes in project if the SM package is increased to 4.6.1.0

  • [SM-2430] Axis limit violation on Pick&Place without stop

  • [SM-2431] Problems with CartBlending elements with vanishing axis derivatives: performance degradation and numerical difficulties

  • [SM-2438] MC_GroupInterrupt, CP: Interrupt might not finish if commanded just before the end of a segment

  • [SM-2440] Possible error SMC_CP_INTERNAL_EVAL_CACHE_ERROR on override

  • [SM-2442] Acceleration Limit violation during blending (U-Pick)

Compatibility Information

General

This version is compatible with CODESYS V3.5 SP9 Patch 5 and newer. However we recommend the newest patch level of CODESYS V3.5 SP15. Using axis groups in simulation-mode requires compiler version 3.5.10.40 or later.

  • [SM-2429] Compatibility: changes in project if the SM package is increased to 4.6.1.0. Logging into an application downloaded with SoftMotion 4.6.1.0 installed may require an online change when logging in with SoftMotion 4.6.2.0.

Known Limitations

  • [SM-2314] MC_GroupStop/MC_GroupHalt, CP: immediate braking with given dynamic limits. MC_GroupHalt of CP movements cannot be aborted. A subsequent movement is always treated as buffered.

  • [SM-1901] ETC Drives using modular slaves not working with CODESYS SP13 and SP14 if SlotIndexIncrement is not 0. The mapping of drive objects in the Scaling/Mapping page of SoftMotion drives is computed incorrectly for some EtherCAT slaves and CODESYS versions. This happens if (and only if) all of the following conditions are met:
    • The slave is a multi axis slave, and

    • the slave uses modules, and

    • the attribute SlotIndexIncrement (in the ESI file) of the axis modules is not 0, and

    • the CODESYS version is below 3.5.15.0.

Not released / Not tested

  • Device Application Support. The usage of axis groups in child applications is not supported. See SM-847. Not released.

24.02.2020

Release Note

CODESYS SoftMotion 4.6.1.0 is a feature and bug-fix release.

Major bug-fixes

  • [SM-2015] Project environment: Update of SoftMotion profile without installed device description leads to missing SoftMotion libraries

  • [SM-2260] CP, Resume after error: Null reference exception if resume after error is enabled and an error occurs before any movement was planned

  • [SM-2288] AXIS_REF_SM3: Axis generates an error when setting no control mode while moving

  • [SM-2315] Parker PSD: Change the device IDs to fit the previous versions

  • [SM-2340] CNC: The H points are lost for G Codes of Length 0 and if the End Velocity of the previous GCode is 0

  • [SM-2350, SM-2355] Check of Axis Limits fails when a PTP_PI aborts a PTP_FAST mvt and if the IpoState is end_of_path and fIpoTime is 0

36 minor bugs have been fixed.

New Features

  • [SM-2314] MC_GroupStop/MC_GroupHalt, CP: immediate braking with given dynamic limits

  • [SM-1304] Robotics: Support for 6D tools

  • [SM-2247] Robotics: make it possible to resume after MC_GroupHalt/MC_GroupStop

  • [SM-2152] Improve CP-Tracking for Pick&Place applications step 1

Improvements

  • [SM-2183] AXIS_REF_MAPPING_SM3: new setting to enable writing of outputs in application stop

  • [SM-2192] SMC_GroupJog2: handle huge distances better

  • [SM-2222] Robotics: Improve CP kernel on multicore

  • [SM-2269] Orientation mode axis: don’t create an error if orientation mode axis is used on a kinematics without any orientation DOF

  • [SM-2299] Support mapping of I/O Parameters of type BIT

Supported drives

  • [SM-638, SM-1191, SM-2305] Driver for Beckhoff EL7031 stepper module

  • [SM-2229] Yaskawa: Integrate Sigma-7 400V double axis

  • [SM-2215] SM3_Drive_ETC_KEB_H6: make it possible to immediately disable from state quick stop, even if _bImmediateDisabling is FALSE

  • [SM-2233] SM3_Drive_ETC_KEB_H6: consider voltage enabled, ignore operation enabled

  • [SM-2273] Festo CMMP-AS - remove startparameter sw limits

Compatibility Information

General

This version is compatible with CODESYS V3.5 SP9 Patch 5 and newer. However we recommend the newest patch level of CODESYS V3.5 SP15. Using axis groups in simulation-mode requires compiler version 3.5.10.40 or later.

Issues from version 4.6.1.0

  • [SM-2314] MC_GroupStop/MC_GroupHalt, CP: immediate braking with given dynamic limits. MC_GroupStop/MC_GroupHalt now require the commanded dynamics to be valid. This means that the values of the inputs Deceleration and Jerk have to be positive and the values of the inputs AccFactor and JerkFactor have to be in the range ]0, 1]. An invalid value on any of these inputs leads to an error stop. If you update an application to this SoftMotion version, please make sure that all calls to MC_GroupStop/MC_GroupHalt in your application have valid inputs.

Issues from version 4.6.0.0

  • [SM-2067] Infranor Xtrapuls: it is not possible to access the high 16 bit of the digital inputs and digital outputs Infranor Xtrapuls: The member variables wDigitalInputs and wDigitalOutputs of the SoftMotion axes are now of type DWORD instead of WORD. Updating these devices in existing projects can lead to new compile errors, if wDigitalInputs or wDigitalOutputs were assigned to WORD variables.

  • [SM-2080] U-Pick: improve smoothness to reach more picks per minute: Blending between path elements has been improved to enable faster and smoother pick&place operation. In particular, consecutive lines are now blended even if their direction is exactly opposite to each other (e.g. the down-movement followed by the up-movement of a typical pick&place cycle). To restore the behavior of SoftMotion versions before 4.6.0.0, set the flag bCPCompositeBlending of the structure SMC_AXIS_GROUP_COMPATIBILITY_OPTIONS to FALSE (input of MC_GroupEnable). Note: this change only affects non-tracking movements.

  • [SM-2191] Robotics: change default planning interval to 16 ms: The default for the robotics planning interval has been changed to 16 ms. The planning interval is an internal parameter of the robotics trajectory planner. The value determines the accuracy of the trajectory and the performance requirements of the planning algorithm. (Larger planning intervals lead to reduced performance requirements.) In earlier versions of CODESYS SoftMotion, the default for the planning interval was twice the bus task interval, but at least 4 ms. The planning interval can be changed using SMC_TuneCPKernel.

Known Limitations

  • [SM-2314] MC_GroupStop/MC_GroupHalt, CP: immediate braking with given dynamic limits. MC_GroupHalt of CP movements cannot be aborted. A subsequent movement is always treated as buffered.

  • [SM-1901] ETC Drives using modular slaves not working with CODESYS SP13 and SP14 if SlotIndexIncrement is not 0. The mapping of drive objects in the Scaling/Mapping page of SoftMotion drives is computed incorrectly for some EtherCAT slaves and CODESYS versions. This happens if (and only if) all of the following conditions are met:
    • The slave is a multi axis slave, and

    • the slave uses modules, and

    • the attribute SlotIndexIncrement (in the ESI file) of the axis modules is not 0, and

    • the CODESYS version is below 3.5.15.0.

Not released / Not tested

  • Device Application Support. The usage of axis groups in child applications is not supported. See SM-847. Not released.

20.01.2020

Release Note

CODESYS SoftMotion 4.6.0.0 is a feature and bug-fix release.

Major bug-fixes

  • [SM-2116] SM: AutoMoveGantry: axis limit violation
  • [SM-2146] AxisGroup: Enable AxisGroup implicit code creation

24 minor bugs have been fixed.

Improvements

  • [SM-106] SM: AXIS_REF_ETC: make it possible to access the EtherCAT slave
  • [SM-644, SM-1236] SM_Drive_PosControl: it should be possible to adjust the parameters online by the iec application
  • [SM-2080] U-Pick: improve smoothness to reach more picks per minute
  • [SM-1973] When controller mode “nocontrol” is set, the SoftMotion driver will not write the cyclic outputs of the drive
  • [SM-2016] Robotics: allow to resume the programmed path after an error
  • [SM-2190] Scaling: new scaling view for linear motors
  • [SM-2191] Robotics: change default planning interval to 16 ms
  • [SM-2097] Robotics: improve blending if tangent and curvature matches
  • [SM-2211] Brake Control FB: Create a new Parameter to get the brake state

Supported drives

  • [SM-1967] CMZ LBD
  • [SM-2119] Updated driver for Panasonic MINAS A5B and MINAS A6B
  • [SM-2166] Updated driver for new firmware of Parker PSD

Compatibility Information

General

This version is compatible with CODESYS V3.5 SP9 Patch 5 and newer. However we recommend the newest patch level of CODESYS V3.5 SP15. Using axis groups in simulation-mode requires compiler version 3.5.10.40 or later.

Issues from version 4.6.0.0

  • [SM-2067] Infranor Xtrapuls: it is not possible to access the high 16 bit of the digital inputs and digital outputs Infranor Xtrapuls: The member variables wDigitalInputs and wDigitalOutputs of the SoftMotion axes are now of type DWORD instead of WORD. Updating these devices in existing projects can lead to new compile errors, if wDigitalInputs or wDigitalOutputs were assigned to WORD variables.
  • [SM-2080] U-Pick: improve smoothness to reach more picks per minute: Blending between path elements has been improved to enable faster and smoother pick&place operation. In particular, consecutive lines are now blended even if their direction is exactly opposite to each other (e.g. the down-movement followed by the up-movement of a typical pick&place cycle). To restore the behavior of SoftMotion versions before 4.6.0.0, set the flag bCPCompositeBlending of the structure SMC_AXIS_GROUP_COMPATIBILITY_OPTIONS to FALSE (input of MC_GroupEnable). Note: this change only affects non-tracking movements.
  • [SM-2191] Robotics: change default planning interval to 16 ms: The default for the robotics planning interval has been changed to 16 ms. The planning interval is an internal parameter of the robotics trajectory planner. The value determines the accuracy of the trajectory and the performance requirements of the planning algorithm. (Larger planning intervals lead to reduced performance requirements.) In earlier versions of CODESYS SoftMotion, the default for the planning interval was twice the bus task interval, but at least 4 ms. The planning interval can be changed using SMC_TuneCPKernel.

Known Limitations

  • [SM-1901] ETC Drives using modular slaves not working with CODESYS SP13 and SP14 if SlotIndexIncrement is not 0. The mapping of drive objects in the Scaling/Mapping page of SoftMotion drives is computed incorrectly for some EtherCAT slaves and CODESYS versions. This happens if (and only if) all of the following conditions are met:
    • The slave is a multi axis slave, and
    • the slave uses modules, and
    • the attribute SlotIndexIncrement (in the ESI file) of the axis modules is not 0, and
    • the CODESYS version is below 3.5.15.0.

Not released / Not tested

  • Device Application Support. The usage of axis groups in child applications is not supported. See SM-847. Not released.
09.09.2019