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.

Aktuelle Version
4.12.0.0
Article no.
Bundle-SoftMotion

From €110.00

To €522.00

Plus VAT

Product Description

Licensing:

Single Device License

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:

  • Project engineering of motion using function library modules

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

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

  • Decoupling of application creation from the applied hardware by abstracting the drives with drive group names in the device tree

  • 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, or 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.16.0 or higher

Runtime System

CODESYS Control Version 3.5.5.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, or Sercos)

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 GmbH

A member of the CODESYS Group

Memminger Straße 151
D-87439 Kempten
Germany

Additional Downloads

Versions

Version History

Version Release Notes Release Date

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