Product: CODESYS SoftMotion

Key Issue Type Summary Resolution Release Note
SM-3823 Bug

Finite logical axis below modulo master now behaves like a modulo axis

SM-3810 Bug

SM_Drive_PosControl: default for velocity pilot control is 0 (no velocity pilot control) but should be 1

SM-3778 Bug

SMC_Trafo_Bipod_Arm: possiblity to change dArmLength1/2

SM-3775 Improvement

SMC_MovementCommand: Avoid huge data structures on the stack

SM-3774 Bug

AutoMoveGantry, Multicore: Access violation in ElemFunTrace_StartCycle

SM-3772 Bug

MC_MoveCircularRelative: Coordinate system ACS is not treated correctly

SM-3762 Bug

Possible AccessViolation after a MC_GroupReset

SM-3751 Bug

SMC_Interpolator may return error SMC_INT_QPROF_DIVERGES

SM-3746 Improvement

MC_MoveSuperimposed: make it possible to halt a superimposed movement

SM-3745 Bug

Jump in axis positions when moving between configurations with PTP movement

SM-3742 Bug

Tracking: When commanding two consecutive MC_GroupInterrupt during tracking, the second one will not finish

SM-3739 Bug

Update PLC Device from device that has SoftMotion disabled to SoftMotion device (type 0x1006): compile errors

SM-3737 Bug

Interrupt/Continue: The first movement after a continue without movement to the continue position is reporting done to early

Cannot Reproduce
SM-3736 Improvement

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

SM-3723 Improvement

Generic CiA 402 axis: allow more than 8 drivers per slave if supported

SM-3722 Improvement

Deprecate SMC3_CaptureDescription.bLatchInController

Fixed [[GENERAL]]
The touch probe mode bLatchInController got deprecated and is not supported anymore.
SM-3718 Improvement

SMC_GroupConvertPosition: The kinematic configuration should be returned when converting from ACS to a cartesian coordinate system

SM-3713 Improvement

SMC_ToolRadiusCorr: make it possible to define an offset for the tool radius

SM-3710 Bug

SMC_AXIS_GROUP_PATH_DEVIATION_TOO_HIGH after continue of position in dynamic PCS

SM-3706 Bug

MC_Home might get stuck in reading the position offset

SM-3705 Bug

Assertion in TrajectoryPlanner.StateMachine because CheckInvariant fails

SM-3699 Improvement

[Docu] SMC_NCDecoder and SMC_NCInterpreter: document which values of piStartPosition are actually used

SM-3698 Bug

OriPrimLinear: singularity if orientation difference is close to a multiple of 2*pi

SM-3691 Bug

MC_SetDynCoordTransform: GetPose does not return exact save-pos for fTime=0 and uses acceleration and jerk for extrapolation

SM-3681 Improvement

SMC_ReadNCFile2: make it easier to read from arbitrary streams and to modify the g-code

SM-3680 Improvement

SM3_Drive_ETC_Staubli_uniVAL: support CS9

SM-3671 Bug

MC_GroupStop: Axis group switches to state "stop_done" without having posted the stop movement yet

SM-3668 Bug

SMRCP, Planer: AXIS_MAX_VEL constraint does not consider derivatives wrt t

SM-3665 Epic

Resume after MC_GroupHalt/MC_GroupStop: continue at stop position

SM-3659 Bug

Tracking: Jump in rotary axis (period missmatch) after aborting movement

SM-3652 Bug

Single axis movements: possible jumps in trajectory with ramp type sin^2 and blending or aborting

SM-3636 Bug

SMC_Interpolator: The segmenter is not reset with a rising Execute edge

SM-3627 Improvement

Robotics: read information about axes (position or orientation axis)

SM-3624 Bug

MC_GroupSetOverride: Setting the override to 0 and then setting it to >0 while the axis group is stopping does not work

SM-3621 Bug

SMC_SmoothMerge: Merging of an orientation movement results in an undesired movement of the orientation axis

Fixed [[GENERAL]]
SMC_SmoothMerge now always uses a correct position to initialize the start position of the spline and no longer results in unpredicted movements of the orientation axes.
SM-3611 Bug

MC_TouchProbe: With bFastLatching = FALSE, edge detection of the trigger input should be supported

SM-3607 Bug

Possible unjustified error SMC_CP_TRAJECTORY_NOT_SMOOTH

SM-3527 Bug

SMC_SmoothMerge: Merging results in an undesired loop movement

Fixed [[GENERAL]]
SMC_SmoothMerge now always uses a correct position to initialize the start position of the spline and no longer results in unpredicted movements.
SM-3526 Bug

MC_CamIn: Switching cams no longer works as documented

SM-3521 Bug

Fix the documentation for wAuxData of SMC_POSINFO

SM-3509 Improvement

ElemFunCS_Delta: The function should return an identity frame in case of equal coordinate systems

SM-3451 Bug

MC_TouchProbe: May Report Done multiple times for the same trigger event if the touch probe objects are mapped as PDOs

SM-3354 Bug

Resume after error: Movements do not finish when MC_GroupContinue is used for an aborted interrupt

Cannot Reproduce
SM-3343 Improvement

Robotics: function block SMC_GroupAddOffset to add an offset to a position

SM-3330 Bug

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-3324 Improvement

CNC: allow indirect subprogram calls using string variables instead of the subprogram name

SM-3323 Improvement

Make it possible to declare and use a local logical axis inside a function block

SM-3313 Bug

MC_MoveLinearAbsolute, Override: VelFactor zero "0" can leave the FB in a non-quit state

Cannot Reproduce [[GENERAL]]
Fixed with SM-2276 for version
SM-3239 Bug

Settings: Unhandled Exception on creating new project

SM-3207 Bug

CNC: Wrong errorpos and error Id if a subprogram cannot be found

SM-3178 Bug

SoftMotion on standard PLC: Logical axis below general axis pool disappears when updating the device

SM-3104 Bug

SMC_GroupJog2: generates error when running onto border of working area

SM-3090 Bug


SM-2979 Improvement

SM3_Drive_ETC_Parker (Compax 3): update touch probe function by reading source from object 0x2303.0x20

SM-2978 Bug

PlugIn: There may be multiple implicit General Axis Pool connectors in a project

SM-2946 Bug

SMC_GroupJog2: reset Error output on falling edge of Enable

SM-2929 Bug

CNC program can be added to POU window although SoftMotion is disabled

SM-2838 Bug

MC_CamIn: periodic tabular cams (byType XYVA) with many points: long runtime if cam period is reached

SM-2813 Improvement

Create an SDK for the SoftMotion AddOn

Cannot Reproduce [[GENERAL]]
An SDK is available for version => Cannot Reproduce
SM-2774 Bug

Possible jump in axis positions aftert MC_GroupContinue

Duplicate [[GENERAL]]
Duplicates SM-1156
SM-2739 Bug

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, 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, 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-2561 Improvement

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-2498 Bug

An AxisGroup should report an error if modulo axes are configured

Won't Fix [[GENERAL]]
Won't fix, as modulo axes are now supported with SM-2311.
SM-2497 Bug

SMC_GroupJog2: AxisGroup can start moving in unexpected directions

SM-2496 Improvement

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-2311 Epic

Robotics: Support for modulo-axes

SM-2270 Bug

SMC_GroupJog2: The axisgroup jogs even when an irrelevant axis is fired

SM-1924 Improvement

SMC_ReadNCFile2: include bExecute and bAbort

Cannot Reproduce [[GENERAL]]
Fixed by SM-3207.
SM-641 Improvement

MC_GroupReadActualVelocity/Acceleration, SMC_GroupReadSetVelocity/Acceleration: support for output PathVelocity/PathAcceleration/PathJerk

Duplicate [[GENERAL]]
Duplicates SM-2644
SM-246 Bug

CiA-402 base driver: the generic limit switch checks does not respect Axis.bHWLimitEnable