Data Sheet 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.
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
1/12
Product Data Sheet
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).
CODESYS SoftMotion extends the CODESYS Development System with the following
elements:
• Extensive library of function blocks for control of axes, handling and
processing CNC paths, axis groups, as well as kinematic transformations
• Visualization templates for efficient commissioning
• Examples and templates for creating specialized blocks in the CODESYS
Development System for CNC, robotic, and motion handling in IEC 61131-3
• Integrated axis and drive configuration in the device tree
• Integrated 3D CNC editor according to DIN 66025 (G-Code)
• Axis group configurator for different kinematic systems (customizable for own
kinematics)
• Convenient commissioning of axes (“Online Configuration Mode”) without any
special IEC 61131-3 application code
Scope of the SoftMotion library
• Certified function blocks according to PLCopen MotionControl, Part 1 (V2.0):
◦ Absolute and relative positioning (MC_MoveAbsolute, MC_MoveRelative)
◦ Superimposed positioning (MC_MoveSuperimposed)
◦ Movement at constant velocity (MC_MoveVelocity)
◦ Consistent support of jerk-limited profiles (continuous acceleration for any kind of
interruption of the current motion)
◦ Drive-guided homing (MC_Home)
◦ Blocking stop (MC_Stop)
◦ Control release (MC_Power)
◦ Read and write parameters (MC_Read/WriteParameter)
◦ Read actual position (MC_ReadActualPosition)
2/12
Product Data Sheet
◦ Position, velocity, and acceleration profiles (MC_*Profile)
◦ Probe (MC_TouchProbe, MC_AbortTrigger)
◦ Set and move position (MC_SetPosition)
◦ Read actual velocity and actual torque (MC_ReadActualVelocity,
MC_ReadActualTorque)
◦ Cam switch (MC_DigitalCamSwitch)
◦ Electronic gear with synchronization position (MC_GearInPos)
◦ Full stop (MC_Halt)
◦ Tracking of master signals while respecting limits for velocity, acceleration, and jerk
(SMC_TrackSetValues)
◦ Additional blocks
◦ Control and query of the brake
◦ Monitoring of the drag error, a position window, or maximum values
◦ Distance measurement (also of modulo axes)
◦ External definition of position, velocity, and target value from the application
◦ Management of errors in the function blocks
◦ Controller-guided homing
◦ Operation of cams and cam switches
◦ Definition of the specified target torque
◦ Commissioning the drive
◦ Absolute and relative positioning with transitional velocity
(SMC_MoveContinuousAbsolute and SMC_MoveContinuousRelative)
◦ Setting control mode to position, velocity, or torque
◦ Override (MC_SetOverride)
• Visualization templates for the most important function blocks for fast commissioning with
the visualization integrated in the CODESYS Development System
• Documentation of the library functions in the CODESYS Decelopment System and in the
online help
Scope of the CNC library
• Decoder for converting G-code for further processing
• Support for sub-programs and expressions in G-code
• Limiter for restricting the dynamic values of velocity and acceleration for one or more axes
• Block for testing velocities at transitions
• Interpolator for computing the path points based on the velocity profile (bidirectional
interpolator for forward and reverse gear)
• Interpolator override
• Blocks for coordinate transformation (example: SMC_ScaleQueue3D and
SMC_CoordinateTransformation3D)
• Help modules for path preprocessing and modification:
◦ Tool-radius correction 2D
◦ Angle rounding (with circular arc) and angle smoothing (with 3rd and 5th order splines)
◦ Loop suppression
◦ Limitation of dynamics
◦ Range limit test
3/12
Product Data Sheet
◦ Path shifting and twisting
◦ Velocity and acceleration definition for each axis
• Kinematic transformations (including inverse kinematics) for popular kinematic designs:
◦ Portal systems 2D / 3D
◦ Portal systems with axes of orientation and tool offset
◦ Portal systems with belt drive (H-portals and T-portals)
◦ Polar transformation
◦ 2/3-arm SCARA
◦ Bipod
◦ Tripod with linear and joint axes
◦ 5-axis kinematics for 3-axis portal with rotating and tilting tool
◦ 4-axis kinematics for palletizing robots
◦ 6-axis kinematics for articulated arm robots
• Blocks for reading and processing CNC paths from a file (for paths created and processed
externally)
• Path velocity modes trapezoid / sigmoidal / quadratic (jerk-limited) / quadratic_smooth (jerk-
limited with continuous jerk curve)
• Any definition of the lookahead buffer
• Odometer function
• Parameterizable 3D coordinate transformation (including inverse)
• Computation of a coordinate system from six scanning points
• Visualization templates for the most important function blocks for fast commissioning with
the visualization integrated in the CODESYS Development System (for example, kinematic
transformations)
• Visualization elements for 3D CNC operation and online editing for creating CNC machines
by using CODESYS HMI or CODESYS TargetVisu
Scope of robotics library
• Axis group editor with mapping of axes to kinematics and their parameterization
• Certified function library with program blocks according to PLCopen Motion Part 4
(Coordinated Motion)
◦ Administrative blocks: MC_GroupEnable/Disable/Reset/ReadError, etc.
◦ Motion commands: MC_MoveDirectAbsolute, MC_MoveDirectRelative,
MC_MoveLinear*, MC_MoveCircular*, MC_GroupHalt, MC_GroupStop
◦ Tracking: MC_TrackConveyorBelt, MC_TrackRotaryTable,
MC_SetDynCoordTransform
◦ Jog mode in any coordinate system: SMC_GroupJog2
◦ Support of different coordinate systems: world coordinates (WCS), machine
coordinates (MCS), several product coordinates (PCS_1, PCS_2), tool coordinates
(TCS), and axis coordinates (ACS)
• Support for waiting on the path with waiting time (SMC_GroupWait)
• Public documented interface for creating user-specific kinematics in the IEC 61131-3
languages
4/12
Product Data Sheet
• Supported kinematics with convenient configuration:
◦ 5-axis gantry robot
◦ 2/3-axis gantry robot
◦ 2/3-axis H gantry robot
◦ 2-axis T gantry robot
◦ Bipod robot
◦ Tripod robot with linear /rotary axes
◦ Polar kinematics
◦ 2/3-arm SCARA robot with auxiliary axes
◦ 4-axis kinematics for palletizing robots
◦ 6-axis kinematics for articulated arm robots
• Additional orientation kinematics, which can be combined with the other kinematics listed
above, such as gantry and tripod kinematics.
• Tools with orientation and position offset (full 6D)
• Support for user provided dynamic models that compute the torques and forces for each
joint
• Support for torque/force limitation during planning
• Support for torque/force feed forward control
• Support for defining the workpiece and tool load
• Triggers
Memory requirements of the robotics library
• An axis group object requires approximately 28 megabytes of memory.
Scope of the SoftMotion Light library
• MC_MoveAbsolute / MC_MoveRelative
• MC_MoveVelocity
• MC_Stop / MC_Halt
• MC_Home
• MC_Power / MC_Reset / MC_ReadStatus
• SML_ReinitAxis / SML_ChangeAxisConfig
• Visualization templates (analogue to SoftMotion)
• Commissioning assistance (SML_StartupDrive)
Configuration and commissioning of the drives is described in detail in CODESYS online help
(chapter “SoftMotionLight”).
5/12
Product Data Sheet
Range of functions for the cam editor
• Graphical and numerical planning of cam tables
• Linear or polynomial interpolation (5th order polynomial)
• Configuration of tappets and their switching behavior in the cam
• Configuration of the cam regarding dimension, period, and continuity requirements
6/12
Product Data Sheet
Picture 1: Using cam planning to create a motion project in the CODESYS Development System
Scope of functions for 3D CNC editor according to DIN 66025 (G-Code)
• Simultaneous graphical and textual editors
• Path preprocessing (offline preview of the effects, for example angle smoothing)
• Path pre-interpolation (offline preview of the resulting position, velocity, acceleration, and
jerk curves of all supported axes)
• DXF import
• Read from and save to file
• Program transformations (rotate, shift, scale in G-code)
• Conversion to tables
• Program information (path length, path duration, number of objects, etc.)
G-code command set
• Linear interpolation (G1), Circular interpolation (G2/G3)
• Dwell (G4)
• Spline interpolation (G5, G10)
• Parabola interpolation (G6), Ellipsis interpolation (G8, G9)
• Interpolation plane selections for circular arcs (G16 to G19)
• Conditional jumps (G20)
• Variable write/increment (G36, G37)
• Tool radius compensation (G40 to G42)
• Angle rounding and smoothing (G50, G51, G52)
• Coordinate system shift (G53 to G56)
• Loop suppression (G60, G61)
• Timing synchronization with interpolator (G75)
• Absolute and relative coordinates (G90, G91)
• Position setting (G92)
• Absolute and relative coordinates (G98, G99)
• M-Functions (M), Path tappets (H)
• Velocity and acceleration definition (F, E)
7/12
Product Data Sheet
• Use of IEC variables
• Supported dimensions: X, Y, Z (primary interpolation axes)
• A, B, C (orientation axes — splined)
• P, Q, U, V, W (additional axes — linear)
Picture 2: Using the CNC editor to create a CNC application in the CODESYS Development
System
Picture 3: Project engineering of a SCARA robot with an axis group and program block in
CODESYS
Supported fieldbus systems and drive connections
• EtherCAT
• CAN/CANopen
• Sercos
• Virtual drives (for virtual axes and tests)
• Position control in the PLC by using PTt control for velocity-controller axes with position
feedback (for example, frequency converter with encoder feedback, hydraulic axes with
proportional valve, and position feedback)
8/12
Product Data Sheet
• Logical axes as copies of other axes with independent offset and on-demand dead-time
compensation / actual value smoothing
• Configuration of encoder axes that form any analog signal (for example, as the master axis
for cams)
Tested drivers for the following drives
• EtherCAT:
◦ Beckhoff EL2521 / EL5101 / EL72x1 / EL703x / EL704x
◦ Bonfiglioli iBMD
◦ Bosch Rexroth IndraDrive CoE / ctrlX DRIVE CoE
◦ CMZ BD / LBD
◦ Control Techniques Digitax / Mentor / Unidrive
◦ Copley Accelnet
◦ Delta ASDA A2 / A3 / B3
◦ Delta R1-EC5621
◦ Festo CMMP EtherCAT
◦ Generic CiA 402 (also for multi-axis drives)
◦ Generic SoE (also for multi-axis drives)
◦ Hitachi ADV series
◦ Infranor XtrapulsPac
◦ JAT Ecovario
◦ KEB BD / F5 / H6
◦ KEBA KeDrive D3
◦ Kollmorgen AKD/ AKD Servodrive / AKD-N/C / MKD-N/C / AKD2G
◦ Metronix ARS 2000 series
◦ Nidec Unidrive M
◦ Omron G5
◦ Panasonic MINAS A5B / A6B / A6 MultiDrive
◦ Parker compax3 / SBC / PSD
◦ Sanyo Denki RS2
◦ Schneider Electric Lexium32 / Lexium32i
◦ Servotronix CDHD
◦ Stäubli uniVAL
◦ Stöber Posidrive, SD6, SI6/SC6
◦ WEG SCA06
◦ Yaskawa Sigma7 series
• CAN/CANopen
◦ Bonfiglioli iBMD
◦ CMZ BD / SD / LBD / SBD / IBD(60) / NBD
◦ Festo EMCA / CMMP
◦ Generic CiA 402 (also for multi-axis drives)
◦ Infranor cd1-k / XtrapulsPac
◦ JAT Ecovario
◦ KEB BD / F5 / Stepless Technology
◦ Metronix ARS 2000 series
9/12
Product Data Sheet
◦ Nanotec PD4C
◦ Schneider Electric Lexium05 / Lexium23 / Lexium28 / Lexium32 / Lexium32i / SD-3
• Sercos
◦ Bosch Rexroth IndraDrive C/M/Cs/ML/Mi
10/12
Product Data Sheet
General information
Supplier:
CODESYS GmbH
Memminger Strasse 151
87439 Kempten
Germany
Support:
Technical support is not included with this product. To receive technical support, please purchase
a CODESYS Support Ticket.
[Link]
Item:
CODESYS SoftMotion
Item number:
2305000000, 2305000001, 2305000002
Sales/Source of supply:
CODESYS Store
[Link]
Included in delivery:
• CODESYS package with SoftMotion functionality
• License key
System requirements and restrictions
Programming System CODESYS Development System V3.5.17.0 or higher
Runtime System CODESYS Control Version [Link] 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
11/12
Product Data Sheet
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
Note: Technical specifications are subject to change. Errors and omissions excepted. The
content of the current online version of this document applies.
Creation date: 2023-12-11
12/12