Page 1
___________________ TO Path Interpolation Preface Overview of Path ___________________ Interpolation ___________________ Basics of Path Interpolation SIMOTION ___________________ Configuring the Path Object Motion Control Sample Project for the Path ___________________ TO Path Interpolation Interpolation Programming/homing path ___________________ interpolation Function Manual ___________________...
Page 2
Note the following: WARNING Siemens products may only be used for the applications described in the catalog and in the relevant technical documentation. If products and components from other manufacturers are used, these must be recommended or approved by Siemens. Proper transport, storage, installation, assembly, commissioning, operation and maintenance are required to ensure that the products operate safely and without any problems.
Keyword index for locating information. SIMOTION Documentation An overview of the SIMOTION documentation can be found in a separate list of references. This documentation is included as electronic documentation in the scope of delivery of SIMOTION SCOUT. It comprises 10 documentation packages.
Page 4
My Documentation Manager Click the following link for information on how to compile documentation individually on the basis of Siemens content and how to adapt this for the purpose of your own machine documentation: http://www.siemens.com/mdm Training...
Page 5
Preface FAQs You can find Frequently Asked Questions on the Service&Support pages under Product Support: http://support.automation.siemens.com Technical support Country-specific telephone numbers for technical support are provided on the Internet under Contact: http://www.siemens.com/automation/service&support TO Path Interpolation Function Manual, 11/2010...
Page 6
Preface TO Path Interpolation Function Manual, 11/2010...
Table of Contents Preface ..............................3 Overview of Path Interpolation......................... 11 Overview of Functions .........................11 Terminology ..........................12 Basics of Path Interpolation ........................15 Path interpolation .........................15 Coordinate system ........................17 Modulo properties ........................17 Units .............................18 Path interpolation types .......................18 2.5.1 Path interpolation types .......................18 2.5.2 Structure of commands for path interpolation................19 2.5.3...
Page 8
Table of Contents 2.12.4 Path blending with a path-synchronous motion ................41 2.12.5 Output of the path distance to the positioning axis ..............42 2.12.6 Output of Cartesian coordinates using the MotionOut Interface..........42 2.13 Kinematic adaptation........................42 2.13.1 Kinematic adaptation........................42 2.13.2 Kinematic adaptation –...
Page 9
Table of Contents Assigning path object parameters/default values ................86 Configuring a path object ......................90 Defining limits..........................91 Interconnecting a path object.......................92 Configuring kinematic adaptation in the expert list ..............93 3.10 Configuring path monitoring......................93 3.11 Path interpolation - context menu ....................94 Sample Project for the Path Interpolation ....................97 Overview of the example ......................97 Select technology package ......................98 Create axes..........................98...
Page 10
Table of Contents 5.1.4.1 Override behavior........................134 5.1.4.2 Sequence of effectiveness ......................135 5.1.4.3 Interaction with the axis......................135 5.1.4.4 Interactions with other path motions ..................135 Local alarm response........................ 136 Appendix A ............................137 Specific kinematics with TrafoID 1001 ..................137 Index..............................
Overview of Path Interpolation Overview of Functions As of Version V4.1, SIMOTION provides path interpolation functionality. This functionality enables up to three path axes to travel along paths. In addition, a positioning axis can be traversed synchronously with the path.
This means, for example, a product can be taken from a running conveyor or placed there. As of SIMOTION V4.1.2, position details in the motion commands can be related optionally to the basic coordinate system or to an object coordinate system (OCS).
Page 13
Overview of Path Interpolation 1.2 Terminology Motion sequence reference value (trackingInPosition) The value made available to the TrackingIn interface of the path object by another technology object. This can be, for example, the actual value of an external encoder. Motion sequence value (trackingPosition) The current position of a coupled OCS with reference to the OCS reference position.
Page 14
1.2 Terminology Object coordinate system (OCS) As of SIMOTION V4.1.2, in addition to the base coordinate system (BCS), object coordinate systems (OCS) with the path object are also available. Path motions can be specified either in the BCS or in the OCS. The object coordinate systems are defined in their reference position using frame transformations for the BCS.
Basics of Path Interpolation Path interpolation The path interpolation technology provides functionality for interpolating linear, circular, and polynomial paths in two dimensions (2D) and three dimensions (3D). Figure 2-1 Role and basic principle of the path interpolator Objects involved in path interpolation Figure 2-2 Objects involved in path interpolation The path interpolation technology is made available in the Path Object technology object (TO...
Page 16
Basics of Path Interpolation 2.1 Path interpolation The TO Path Object is interconnected with 2 or 3 path axes. In addition, the TO Path Object can be interconnected with a positioning axis for path- synchronous motion and with positioning axes for connection to a coordinate. Likewise, it can be interconnected with a cam.
Basics of Path Interpolation 2.2 Coordinate system Coordinate system The path interpolation functions require a Cartesian coordinate system. A clockwise, rectangular coordinate system in accordance with DIN 66217 is used. The user programs in this right-handed system, irrespective of the real kinematics. Figure 2-5 Cartesian coordinate system, right-handed system Main planes...
Basics of Path Interpolation 2.4 Units This means that the modulo transition of the axis must not be in the traversing range of the path motions. The modulo range and the modulo starting point as well as the position of the modulo range relative to the intended path travel range must be set appropriately, for example, using the settings for reference point and reference point offset during homing.
Basics of Path Interpolation 2.5 Path interpolation types The following interpolation modes are available for the path object: ● Linear paths (Page 21) – 2D in a main plane – 3D ● Circular paths (Page 22) – 2D in a main plane with radius, end point, and orientation –...
Page 20
Basics of Path Interpolation 2.5 Path interpolation types ● Specification of the command transition in nextCommand ● Specification of the command ID in commandId Specifications for the linear path only ( _movePathLinear() ): (see Linear paths (Page 21) ) ● None Specifications for the circular path only (_movePathCircular() ) (see Circular paths (Page 22) ) ●...
Basics of Path Interpolation 2.5 Path interpolation types ● Mode of path-synchronous motion in wMode ● Direction of path-synchronous motion in wDirection ● End point of path-synchronous motion in Details of the object coordinate system (see Object coordinate system (OCS) on the path object (Page 69) ) ●...
Basics of Path Interpolation 2.5 Path interpolation types 2.5.4 Circular paths 2.5.4.1 Circular paths For a circular path, approach is made from the current position to a specified end point following an arc. Circular paths are traversed with the _movePathCircular() command. The arc can be specified using several modes.
Basics of Path Interpolation 2.5 Path interpolation types Example of a circular path with radius, end point, and orientation In this example, the current position and the end point lie in the X-Y plane. The end point is separated from the current position by -10 units along the x-axis and 10 units along the y- axis.
Page 24
Basics of Path Interpolation 2.5 Path interpolation types To perform circular interpolation starting from the current position in a main plane with specification of center point and angle, you set circularType:= BY_CENTER_AND_ARC in the _movePathCircular() command. The center point of the circle, the angle to be traveled, and the orientation (travel in the positive or negative direction of rotation) are specified in the command.
Basics of Path Interpolation 2.5 Path interpolation types 2.5.4.4 Circular path using intermediate point and end point Figure 2-13 Circular path with intermediate and end points To perform circular interpolation starting from the current position over an intermediate point to the end point, you set circularType:=OVER_POSITION_TO_ENDPOSITION in the _movePathCircular() command.
Basics of Path Interpolation 2.5 Path interpolation types retval := _movepathcircular( pathObject := pathIpo, pathPlane := X_Y_Z, circularType := OVER_POSITION_TO_ENDPOSITION, pathMode := RELATIVE, x:=10.0, y:=0.0, z:=0.0, ijkMode := RELATIVE, i:=5.0, j:=5.0, k:=5.0 2.5.5 Polynomial paths 2.5.5.1 Polynomial paths A polynomial segment enables you to achieve a constant-velocity and constant-acceleration transition between two geometry elements and to make use of user-programmable curve shapes, e.g.
Page 27
Basics of Path Interpolation 2.5 Path interpolation types Smooth-path transition between two linear paths ⎛ ⎞ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎛ ⎞ ⎝ ⎠ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎝ ⎠ Figure 2-16 Specification of derivatives for polynomial transition between two linear paths The derivatives at the end point of the previous geometry and at the start point of the following geometry can be calculated with the _getLinearPathGeometricData(), _getCircularPathGeometricData() and _getPolynomialPathGeometricData() commands.
Basics of Path Interpolation 2.5 Path interpolation types 2.5.5.2 Polynomial path - direct specification of the polynomial coefficients For the polynomial specification using (polynomialMode:=SETTING_OF_COEFFICIENTS() ) polynomial coefficients, the polynomial path is determined using a function of the fifth degree: P = A •...
Page 29
Basics of Path Interpolation 2.5 Path interpolation types The two derivatives of the polynomial end point are then determined. The _getCircularPathGeometricData() command used for the calculation uses the starting point of the arc (end point of the polynomial) as basis. // StartPoly must be defined as // StructRetGetLinearPathGeometricData // EndPoly must be defined as...
Basics of Path Interpolation 2.5 Path interpolation types 2.5.5.4 Polynomial paths - attach continuously Polynomial paths can be attached continuously to a previous path segment using the polynomialMode:=ATTACHED_STEADILY setting. Because the geometric derivatives at the start point of the polynomial are taken from the predecessor geometry, only the first and the second derivative at the end point needs to be specified directly.
Basics of Path Interpolation 2.6 Path dynamics 2.6.2 Preset path dynamics The path dynamics can be specified in two different ways in the respective motion command: ● Preset path dynamics via command parameters ● Preset path dynamics via velocity profile/cam Preset path dynamics via command parameters The dynamic values (velocity, acceleration, and, if applicable, jerk) are explicitly specified in the velocity profile type.
Page 33
Basics of Path Interpolation 2.6 Path dynamics The dynamic values of the axis for the path object are only taken into account if this has been programmed accordingly (command parameter blendingMode := ACTIVE_WITH_DYNAMIC_ADAPTION and/or dynamicAdaption <> INACTIVE). Path velocity limiting, path acceleration limiting, and path jerk limiting can be specified in the limitsOfPathDynamics system variables.
Page 34
Basics of Path Interpolation 2.6 Path dynamics ● No allowance for maximum dynamic values of path axes (INACTIVE) With this setting, the axial limits are not taken into account within the path interpolation. However, path axis limiting is still active and, if a violation occurs, a setpoint-side path error can result.
_continuePath() command. When the path motion is resumed, the motion properties (velocity profile, acceleration, etc.) of the interrupted path command are applied. With SIMOTION V4.2 and higher, other dynamism parameters can be specified directly at the command _continuePath().
Basics of Path Interpolation 2.8 Path behavior at motion end The _stopPath() command can be used to define the dynamic response during deceleration. If the braking dynamic in the _stopPath() command is smaller than the braking dynamic in the active motion command, faults can occur in some situations. If the dynamic response defined in the _stopPath() command in the previously defined path segments (i.e.
Basics of Path Interpolation 2.8 Path behavior at motion end No intermediate segments for the fillet are generated by the path interpolation for this blending. Taking into account the axial limits, there are three transition types that can be set in the blendingMode parameter of the next command.
Basics of Path Interpolation 2.9 Display and monitoring options on the axis Note that with active dynamic adaptation, the dynamic axis response is set to the smaller value from axis acceleration and axis deceleration. Therefore, when an axis has a maximum acceleration of 1000 mm/s and a maximum deceleration of 500 mm/s , the value for the...
Basics of Path Interpolation 2.10 Allowance for axis-specific traversing range limits Limiting and monitoring the setpoint error: ● With setting enableCommandValue := NO_ACTIVATE: – The dynamic limitation is performed without taking the jerk into account. – The resulting setpoint error is not monitored. ●...
Basics of Path Interpolation 2.12 Functionality of path-synchronous motion 2.12 Functionality of path-synchronous motion 2.12.1 Functionality of path-synchronous motion A path-synchronous motion on a positioning axis can be specified synchronous to the path motion with which it is specified. This causes the path-synchronous motion to start and end at the same time as the path motion.
Basics of Path Interpolation 2.12 Functionality of path-synchronous motion 2.12.3 Dynamics of path-synchronous motion The path object does not keep its own dynamic response parameters for path-synchronous motion. The following applies when calculating the path velocity profile for simultaneous traversing of a path-synchronous motion: ●...
Basics of Path Interpolation 2.13 Kinematic adaptation 2.12.5 Output of the path distance to the positioning axis Alternatively, the traveled path distance, i.e. the current path length, can be output to the positioning axis. This distance can be relative to an individual path segment or added up over multiple path segments.
Basics of Path Interpolation 2.13 Kinematic adaptation 2.13.2.2 Reference points The following reference points are used in path interpolation: ● Cartesian zero point ● Kinematic zero point ● Kinematic end point (because a tool is not taken into account, this is equal to the path point) Figure 2-27 Reference points of the coordinate systems in path interpolation The path object calculates the position on the path.
Page 44
Basics of Path Interpolation 2.13 Kinematic adaptation System variables Description path.motionState Motion status of path motion path.position Path position (within the path length) path.velocity Path velocity Cartesian specifications in the basic coordinate system / path-synchronous motion System variables Description bcs.x/y/z/w.position Set positions bcs.x/y/z/w.velocity Set velocities...
Basics of Path Interpolation 2.13 Kinematic adaptation System variables Description override.acceleration Acceleration override override.velocity Velocity override Path command statuses System variables Description linearPathCommand.state Status of linear interpolation circularPathCommand.state Status of circular interpolation polynomialPathCommand.state Status of polynomial interpolation 2.13.2.4 Transformation of the dynamic values The kinematicsData.transformationOfDynamics system variable indicates whether a kinematic transformation supports the dynamics transformation functionality.
Basics of Path Interpolation 2.13 Kinematic adaptation For the calculation of axis positions, the values are specified in the axis coordinate of the path axis, and not relative to the kinematic zero point of the axis. The modulo range is taken into account. For the transformation of Cartesian values to path axis values, a link constellation and not a reference position of the axes has to be specified in order to ensure uniqueness.
-100 z: -200 With SIMOTION V4.2 and higher, not only can the BCS be offset but also rotated, allowing for any rotation of the coordinate system from the kinematics zero point. This allows flexible assignment of the BCS to the handling equipment's kinematics.
● Swivel arm kinematics (Page 65) (SWIVEL_ARM) available from V4.2. ● Other special kinematics (Page 68).(SPECIFIC) A transformation can be selected for each path object. Thus, multiple transformations can be configured/active in a SIMOTION system when multiple path objects are used. TO Path Interpolation...
2.13.3.2 Configuration screens With SIMOTION version 4.2 and higher you can use parameterization screens to configure the kinematics. You can access the screens via the configuration menu. Figure 2-33 Open configuration Depending on the kinematics, the screen will contain several tabs where you can enter mechanical data and offsets and rotations.
Page 50
Basics of Path Interpolation 2.13 Kinematic adaptation Figure 2-35 Cartesian kinematics 2D - offset TO Path Interpolation Function Manual, 11/2010...
Basics of Path Interpolation 2.13 Kinematic adaptation 2.13.3.3 Cartesian 2D/3D gantries basicOffset Figure 2-36 Kinematics example: 2D/3D gantry Configuration data for Cartesian kinematics typeOfKinematics: Cartesian gantry kinematic type CARTESIAN BasicOffset.x Offset of the zero point of Cartesian coordinate x relative to the zero point of axis coordinate A BasicOffset.y Offset of the zero point of Cartesian coordinate y relative to...
Basics of Path Interpolation 2.13 Kinematic adaptation 2.13.3.4 Roller picker Figure 2-37 Roller picker: Representation of the axis system The roller picker has two-dimensional kinematics. You can configure roller pickers in all three main planes. This description assumes a configuration in the X-Y plane. , φ...
Page 53
Basics of Path Interpolation 2.13 Kinematic adaptation ,φ , φ Figure 2-39 Kinematics of roller picker (deflection roll on the tool; this case is not examined here) The alternative variant with the deflection role on the tool can be derived by converting the coordinates: Deflection role on the tool Deflection role on the opposite side of the tool...
Basics of Path Interpolation 2.13 Kinematic adaptation Specification of the radius of the disks on the motors in: radius1 Disk radius for path axis 1 radius2 Disk radius for path axis 2 Possible link constellations LinkConstellation Irrelevant (always 1) 2.13.3.5 Delta 2D picker Figure 2-40 Kinematics of Delta 2D picker (X-Y plane example)
Basics of Path Interpolation 2.13 Kinematic adaptation Configuration data for Delta 2D picker kinematics typeOfKinematics: Delta 2D picker kinematics type DELTA_2D_PICKER basicOffset Offset of the kinematic zero point (ZP) relative to a Cartesian zero point basicOffset.x Portion of offset in coordinate direction X basicOffset.y Portion of offset in coordinate direction Y Axis 3 is not available for the Delta-2D picker.
Page 56
Basics of Path Interpolation 2.13 Kinematic adaptation Figure 2-42 Kinematics of Delta 3D picker (bottom view) Figure 2-43 Kinematics of the Delta 3D picker (single arm on the example, axis A1) Definitions ● A , and A designate the three active drive axes of the kinematic structure. They lie in the X-Y plane with z = 0, and each has distance d from the kinematic zero point (ZP).
Page 57
Basics of Path Interpolation 2.13 Kinematic adaptation ● When x = 0, the zero position of the kinematics lies in the center between drive axes A and A ● The end point of the transformation is defined with its coordinates x and z centrally between G to G...
Basics of Path Interpolation 2.13 Kinematic adaptation 2.13.3.7 SCARA kinematics Figure 2-44 SCARA: Representation of the axis system A2EP A1A2 x,y,z Figure 2-45 SCARA: Kinematics The kinematic zero point lies in point A TO Path Interpolation Function Manual, 11/2010...
Page 59
Basics of Path Interpolation 2.13 Kinematic adaptation The zero positions of the A1 axis and A2 axis are as follows: Figure 2-46 SCARA: Zero positions The domain of the single A and A axes is limited to [-180°; 180°). Link compensations A2EP A1A2 x,y,z...
Page 60
Basics of Path Interpolation 2.13 Kinematic adaptation ● A coupling from axis A1 to axis A2 ● A coupling from axis A1 and axis A2 to the path-synchronous controlled axis A4 That is, the setpoint of axis A4 is changed to the positioning axis in accordance with the changes of A1 and A2.
Basics of Path Interpolation 2.13 Kinematic adaptation Possible link constellations LinkConstellation Positive link position: angle of axis A in the range of [0°, 180°) relative to the kinematic zero point Negative link position: Angle of axis A2 in the range of [-180°, 0°) relative to the kinematic zero point Figure 2-48 Possible link positions...
Page 62
Basics of Path Interpolation 2.13 Kinematic adaptation Figure 2-50 Articulated arm: Kinematics The kinematic zero point lies in point A The zero position of the kinematics exists if distanceA1A2, distanceA2A3 and distanceA3EP point in the Cartesian x-direction. Figure 2-51 Articulated arm: Axes A2 and A3 zero positions TO Path Interpolation Function Manual, 11/2010...
Page 63
Basics of Path Interpolation 2.13 Kinematic adaptation Figure 2-52 Articulated arm: Axis A1 zero position The domain of the single A1 to A3 axes is limited to [-180°; 180°). Coupled axes If a positive coupling factor between two axes is specified, the transformation assumes that a positive motion on the first axes leads to a negative motion on the second axis.
Basics of Path Interpolation 2.13 Kinematic adaptation Possible link constellations LinkConstellation Angle of axis A3 in the range of [0°, 180°) relative to the kinematic zero point Angle of axis A1 corresponds to atan(EPy/EPx) Angle of axis A3 in the range of [-180°, 0°) relative to the kinematic zero point Angle of axis A1 corresponds to atan(EPy/EPx) Angle of axis A3 in the range of [0°, 180°) relative...
Basics of Path Interpolation 2.13 Kinematic adaptation Table 2- 1 Configuration data for 2-axis articulated arm kinematics typeOfKinematics:ARTICULATED_ARM_2D 2axis articulated arm kinematics type of kinematics basicOffset.x Offset of the kinematic zero point relative to the Cartesian zero point, x coordinate basicOffset.y Offset of the kinematic zero point relative to the Cartesian zero point, y coordinate...
Page 66
Basics of Path Interpolation 2.13 Kinematic adaptation Figure 2-55 Kinematics working area Unraveling the lateral surface results in a 2D plane, for which coordinate-plane and offset parameters can be assigned in the same way as with Cartesian 2D kinematics. The offsets are applied to the set coordinate plane and rotation is about the axis that is perpendicular to the plane.
Basics of Path Interpolation 2.13 Kinematic adaptation With this type of kinematics, the conveyor tracking function (see Motion sequence at path object (Page 69)) does not serve any useful purpose. Table 2- 2 Configuration data for swivel arm kinematics typeOfKinematics:SWIVEL ARM Swivel arm kinematics type of kinematics: basicOffset.x Offset of the kinematic zero point relative to...
Basics of Path Interpolation 2.13 Kinematic adaptation Figure 2-57 Articulated arm kinematics: Axes ● A1 axis: 1. Path axis ● A2 axis: 2. Path axis ● A3 axis: 3. Path axis If your kinematic system does not provide any axis for the first path axis, you must create a virtual axis for the first path axis and so interconnect the path object.
Motion sequence on the path object 2.14.1 Object coordinate system (OCS) on the path object As of SIMOTION V4.1.2, position details in the motion commands can be related optionally to the basic coordinate system (BCS, previously present functionality) or to an object coordinate system (OCS).
Basics of Path Interpolation 2.14 Motion sequence on the path object 2.14.2 Motion sequence – fundamentals 2.14.2.1 Defining an OCS reference position The reference position of the OCS is defined compared to the BCS in the OCS basic frame. The OCS basic frame contains the translation of the Cartesian X-, Y-, and Z-axes and the subsequent rotation at the individual axes.
Basics of Path Interpolation 2.14 Motion sequence on the path object Definition of the terminology Figure 2-60 Schematic drawing of the motion sequence Object coordinate system Basic coordinate system Frame Translation and rotation of the OCS for the BCS Reference position Position of the OCS after translation/rotation in accordance with the basic frame Motion sequence reference valueFor example, actual value of an external encoder...
Basics of Path Interpolation 2.14 Motion sequence on the path object If the kinematic end point is synchronized to a coupled OCS or is already synchronous with it (trackingIn <> TO#NIL and trackingState <> INACTIVE), the _setPathObjectOCS() command is not performed on this OCS and an error message issued. Before executing the command, the synchronized state ('SYNCHRONIZED' status) on this OCS must be ended.
Basics of Path Interpolation 2.14 Motion sequence on the path object Figure 2-62 Behavior of trackingPosition for modulo-assigned value in trackingInPosition Resetting trackingPosition The _redefinePathObjectOCS() function can be used to set or translate trackingPosition only when the kinematic end point is not synchronous to this OCS or currently being synchronized (indicated using the trackingState:=INACTIVE variable).
Page 74
Basics of Path Interpolation 2.14 Motion sequence on the path object In the simplest case, after the synchronization, the kinematic end point moves with a defined point in the OCS and so with a point located on the conveyor. Furthermore, after the synchronization in the coupled OCS, linear, circular or polynomial paths can also be followed.
Basics of Path Interpolation 2.14 Motion sequence on the path object ● there is no motion active in the BCS, the speed of the kinematic end point is equal to the speed of the conveyor belt and the position misalignment of the synchronization motion resulting from the synchronization has been rectified.
Basics of Path Interpolation 2.14 Motion sequence on the path object 2.14.2.7 Stopping in the OCS The _stopPath() command can be stopped relative to the OCS. The SYNCHRONIZED status with the coupled OCS is retained. This means the motion can be continued using _continuePath() relative to the coupled OCS.
Basics of Path Interpolation 2.14 Motion sequence on the path object Consequently, the OCS is displaced by 100 mm in the X-direction and 15 mm in the Z- direction: Figure 2-65 Displacement of the OCS The OCS is rotated by -15° at the Y-axis. Figure 2-66 Rotation of the OCS 2.14.3.3...
Basics of Path Interpolation 2.14 Motion sequence on the path object 2.14.3.4 Defining the position of the OCS relative to the motion sequence reference value The sensor, for example, a light barrier, is triggered by the passing product. The current value of the CONVEYOR_BELT external encoder is stored in the belt_position variable.
Basics of Path Interpolation 2.14 Motion sequence on the path object Figure 2-68 Synchronizing the handling device myRetDINT := _enablePathObjectTrackingSuperimposed( pathObject:=Portal_3D, ocsNumber:=1, synchronizingMode:=ON_POSITION, position:=sensor_position + synch_space When the status "synchronous" has been reached (ocs[1].trackingState = SYNCHRONIZED), the command for positioning the gripper at the acting point of the product (offset_x, offset_y, offset_z) can be issued in the OCS.
Basics of Path Interpolation 2.16 Simulation operation Notes: ● The path interfaces cannot be distributed, i.e. all objects involved in the path group (path object, path axes, and positioning axes) must be on the same device. ● The objects involved in a path interpolation group (path object, path axes and, if applicable, a positioning axis) must be assigned to the same IPO or IPO_2 execution level.
Page 82
Basics of Path Interpolation 2.16 Simulation operation TO Path Interpolation Function Manual, 11/2010...
Configuring the Path Object Selecting the path interpolation technology package 1. Select the device in the project navigator and select Select technology packages in the shortcut menu (right-click). 2. Select the PATH option and confirm with OK. Figure 3-1 Selection of technology packages TO Path Interpolation Function Manual, 11/2010...
Synchronous operation can be selected or cleared the next time the axis wizard is run. Creating a path object In SIMOTION SCOUT, path objects are created at the same level as an Axis and a Cam technology object. These path objects can be assigned to all applicable axes of the device.
Page 85
Configuring the Path Object 3.3 Creating a path object You can also copy an existing path object to the clipboard and then insert it under another name. Figure 3-3 Inserting a path object 2. Enter a name and, if necessary, the author, version, and comments, and click OK to confirm.
Configuring the Path Object 3.4 Representation in the project navigator Representation in the project navigator The path object appears in the project navigator at the same level as the Axis and Cam technology objects. Links symbolize the connection to path axes or a positioning axis for path-synchronous motion.
Page 87
For additional information, see Path dynamics (Page 31). The meaning of the dialog window parameters and their permissible value ranges can be found in the SIMOTION reference lists. Path parameters You specify the default settings for the path on the Path tab.
Page 88
Configuring the Path Object 3.5 Assigning path object parameters/default values Figure 3-6 Path object: Default settings - Path tab You define the substitute values (default settings) for the path in this window. You can set the following parameters: Field/button Meaning/Instruction Path plane Here, you specify the path plane: X_Y_Z / X_Y / Y_Z / Z_X (default setting: x_y_z for 3D;...
Page 89
(See Motion Control Basic Functions, "Expert list") For additional information, see Basics of Path Interpolation (Page 15). The meaning of the dialog window parameters and their permissible value ranges can be found in the SIMOTION reference lists. TO Path Interpolation Function Manual, 11/2010...
For an overview of functions, refer to Overview of Path Interpolation (Page 11). For a description of functions, refer to Basics of Path Interpolation (Page 15). The meaning of the configuration data and the permissible value ranges can be found in the SIMOTION reference lists. TO Path Interpolation Function Manual, 11/2010...
Here, you enter the maximum jerk during acceleration reduction / deceleration build-up. (limitsOfPathDynamics.negativeJerk) For additional information, see Path dynamics (Page 31). The meaning of the configuration data and the permissible value ranges can be found in the SIMOTION reference lists. TO Path Interpolation Function Manual, 11/2010...
Configuring the Path Object 3.8 Interconnecting a path object Interconnecting a path object ● In the project navigator, double-click Interconnections under the object. Figure 3-9 Interconnecting a path object In this window, you interconnect the outputs of the path object with the path axes or with a positioning axis.
Configuring the Path Object 3.9 Configuring kinematic adaptation in the expert list The following connectors of the path object can be interconnected: ● Path axis 3: with a path axis ● Axis for path-synchronous motion: with a positioning axis, synchronous axis, or path axis ●...
Configuring the Path Object 3.11 Path interpolation - context menu Path motions Field/button Meaning/Instruction Setpoint monitoring Here, you activate the setpoint monitoring for the path axis. (pathAxisPosTolerance.enableCommandValue) Setpoint tolerance Here, you specify the permissible deviation of the setpoint on the axis calculated by the path object for the path axis, taking into account the limits of the executable setpoint.
Page 95
Configuring the Path Object 3.11 Path interpolation - context menu Function Meaning/Description Expert list This function opens the expert list for the path object selected in the project navigator. The configuration data and system variables can be displayed and changed in this list. Configure Units ...
Page 96
Configuring the Path Object 3.11 Path interpolation - context menu TO Path Interpolation Function Manual, 11/2010...
To illustrate how the path interpolation is configured, the following sections describe a sample project step-by-step. The following descriptions assume that the project with the SIMOTION device and the drives have already been created in the HW Config. In this example, the following 2D gantry is created:...
Sample Project for the Path Interpolation 4.2 Select technology package Select technology package The PATH and CAM_EXT technology packages support path interpolation. Right-click the device in the project navigator, select Select technology package in the context menu and use the PATH technology package. Figure 4-2 Select technology package Create axes.
Page 99
Sample Project for the Path Interpolation 4.3 Create axes. 1. Path interpolation technology selected Figure 4-3 Creating an axis 2. Linear, virtual, non-modular axis The configuration of the two axes is as follows: Figure 4-4 Sample summary of the configuration (Axis_X axis) TO Path Interpolation Function Manual, 11/2010...
Page 100
Sample Project for the Path Interpolation 4.3 Create axes. The project navigator should now look like this: Figure 4-5 Project navigator with created axes TO Path Interpolation Function Manual, 11/2010...
Sample Project for the Path Interpolation 4.4 Creating a path object Creating a path object Insert a new path object for the device under PATH OBJECTS. Name the path object Portal_2D. Figure 4-6 Creating a path object Defining the kinematics For the definition of the kinematics, the kinematics type with its mechanical data and the displacement of the coordinate system at the zero point of the base coordinate system are specified.
Page 102
Sample Project for the Path Interpolation 4.5 Defining the kinematics Figure 4-7 Opening the expert list for a path object 2. In the expert list, open the configuration data. Figure 4-8 Configuration data in the expert list TO Path Interpolation Function Manual, 11/2010...
Sample Project for the Path Interpolation 4.6 Interconnecting a path object 3. Select the required kinematics for Kinematics > typeOfKinematics. Here, you set CARTESIAN. Figure 4-9 Setting the CARTESIAN kinematics type 4. Open CartesianConfig and make the following settings: – BasicOffset.x: 0.0 mm –...
Sample Project for the Path Interpolation 4.7 Setting the default settings of the path object Parameterize the interconnections of the path object as follows: ● 1. Path axis: Axis_Z ● 2. Path axis: Axis_X Figure 4-11 Interconnecting a path object Setting the default settings of the path object The settings described below must be made for the default of the path object.
Page 105
Sample Project for the Path Interpolation 4.7 Setting the default settings of the path object 2. In the Default window, in the Dynamic response tab, set the path object, for example, as follows: Figure 4-12 Default - dynamic response 3. Make the following settings in the Path tab: Figure 4-13 Default - path TO Path Interpolation...
Sample Project for the Path Interpolation 4.8 Programming the path interpolation in MCC Programming the path interpolation in MCC 4.8.1 Programming the travel commands in MCC The following path should be created for this example: Figure 4-14 Path to be traversed This path consists of the following path segments: Segment Path type...
Page 107
Sample Project for the Path Interpolation 4.8 Programming the path interpolation in MCC Figure 4-15 Creating an MCC source file 2. Define the following variables in the Interface of the MCC source file: – start_move (BOOL, true): The gantry should perform the motion when start_move=true is set and stop when start_move=false.
Page 108
Sample Project for the Path Interpolation 4.8 Programming the path interpolation in MCC 3. In the project navigator, click Insert MCC chart for the new MCC source file. Name this chart TopLoader. Figure 4-17 Inserting an MCC chart 4. Open the MCC chart and define the following variables. –...
Sample Project for the Path Interpolation 4.8 Programming the path interpolation in MCC 4.8.3 Programming a travel loop 4.8.3.1 Programming a travel loop The following travel loop should be programmed: Figure 4-19 Path to be traversed The travel loop should be performed within a While loop. It will be performed while start_move is set to true.
Sample Project for the Path Interpolation 4.8 Programming the path interpolation in MCC 4.8.3.2 Creating a WHILE loop For the example, a While loop is created that is performed while start_move is set to true. Figure 4-20 WHILE loop 4.8.3.3 Programming the A - B linear path Before starting the forwards motion, the forw_back direction flag is set to true.
Page 111
Sample Project for the Path Interpolation 4.8 Programming the path interpolation in MCC Figure 4-21 Set forw_back to true Then add a travel linear path command to the While loop. Define the A-B linear path as follows: TO Path Interpolation Function Manual, 11/2010...
Sample Project for the Path Interpolation 4.8 Programming the path interpolation in MCC Figure 4-22 Programming the A - B linear path 4.8.3.4 Programming the B-C polynomial path To program the B-C polynomial path, the geometric derivatives for the start and end points must be calculated in an ST zoom-in.
Page 113
Sample Project for the Path Interpolation 4.8 Programming the path interpolation in MCC Figure 4-23 Calculating the derivatives at the start point of the first polynomial path Figure 4-24 Calculating the derivatives at the end point of the first polynomial path Now add a travel polynomial path command to the While loop and define the polynomial path as follows: TO Path Interpolation...
Page 114
Sample Project for the Path Interpolation 4.8 Programming the path interpolation in MCC Figure 4-25 Programming the B-C polynomial path The previously calculated derivatives are specified as follows in the command: ● First derivative at the start point: startpoly.firstGeometricDerivative.x / .y / .z ●...
Sample Project for the Path Interpolation 4.8 Programming the path interpolation in MCC 4.8.3.5 Programming the C-D linear path For the C-D linear path, add the travel linear path command to the While loop and make the following settings: Figure 4-26 Programming the C-D linear path TO Path Interpolation Function Manual, 11/2010...
Sample Project for the Path Interpolation 4.8 Programming the path interpolation in MCC 4.8.3.6 Programming the D-E polynomial path The attach continuously type of polynomial specification is used for the D-E polynomial path. The geometric deviations of the start point are calculated using the previous path segment. Only the deviations for the end point need to be calculated using an ST zoom-in.
Page 117
Sample Project for the Path Interpolation 4.8 Programming the path interpolation in MCC Figure 4-28 Programming the D-E polynomial path TO Path Interpolation Function Manual, 11/2010...
Sample Project for the Path Interpolation 4.8 Programming the path interpolation in MCC 4.8.3.7 Programming the E-F linear path For the E-F linear path, add the travel linear path command and make the following settings: Figure 4-29 Programming the E-F linear path 4.8.3.8 Programming the F-A return travel The gantry grabber should return to the initial position taking a circular path.
Page 119
Sample Project for the Path Interpolation 4.8 Programming the path interpolation in MCC Figure 4-30 Defining the return circular path To indicate the reverse motion, the forw_back variable is set to false in an ST zoom-in command. Figure 4-31 Set forw_back to false TO Path Interpolation Function Manual, 11/2010...
Sample Project for the Path Interpolation 4.8 Programming the path interpolation in MCC The travel circular path command is then added and the following settings made: Figure 4-32 Programming the F-A circular path 4.8.4 Activating the axis enables and homing the axes To move the axes, an enable must be made for each of them.
Sample Project for the Path Interpolation 4.8 Programming the path interpolation in MCC 4.8.5 MCC diagram The MCC chart now has the following form: Figure 4-33 MCC chart 4.8.6 Assigning MCC chart in the execution system The MCC chart must be assigned in the execution system to any MotionTask. The MotionTask must be activated after the StartupTask.
Page 122
Sample Project for the Path Interpolation 4.8 Programming the path interpolation in MCC Figure 4-34 Assigning the MotionTask in the execution system 2. In the task configuration of the MotionTask, select activation after StartupTask. Figure 4-35 Configuring the MotionTask in the execution system TO Path Interpolation Function Manual, 11/2010...
Sample Project for the Path Interpolation 4.8 Programming the path interpolation in MCC 4.8.7 Checking a motion with trace To see how the motion runs, a trace of the following variables is defined: ● TO.Axis_X.positioningstate.actualposition ● TO.Axis_Z.positioningstate.actualposition ● Forw_back A log of the motion loop now has the following form: Figure 4-36 Result of the example as trace TO Path Interpolation...
Sample Project for the Path Interpolation 4.9 Creating a synchronous axis Creating a synchronous axis To show the functionality of the path-synchronous motion, a synchronous axis is added to the project. The synchronous axis is used, for example, to additionally rotate products during the motion.
Page 125
Sample Project for the Path Interpolation 4.9 Creating a synchronous axis For interconnections of the path object, select the Axis_Sync axis as positioning axis for path-synchronous motions. Figure 4-39 Interconnecting the "Axis_Sync" axis Modifying MCC charts Perform the following changes in the MCC chart: TO Path Interpolation Function Manual, 11/2010...
Page 126
Sample Project for the Path Interpolation 4.9 Creating a synchronous axis ● Before the While loop, add the enable axis and home axis commands for the Axis_Sync axis analog to those for the X- and Z-axis. ● The Axis_Sync axis should also rotate synchronously in the C-D linear path. To rotate the axis as required, open the travel command for the C-D linear path and select the Synchronous axis tab.
Page 127
Sample Project for the Path Interpolation 4.9 Creating a synchronous axis Figure 4-41 Moving the synchronous path back to the zero position TO Path Interpolation Function Manual, 11/2010...
Page 128
Sample Project for the Path Interpolation 4.9 Creating a synchronous axis TO Path Interpolation Function Manual, 11/2010...
Programming/homing path interpolation Programming 5.1.1 Programming: Overview The following section provides information about the commands and the alarm responses of the path object technology package. Further information is contained in the reference lists of the technology packages. The description of the functions for the "Toploading" standard library based on the TO path object is contained on the "Application Toploading"...
Programming/homing path interpolation 5.1 Programming With SIMOTION V4.2 and higher, the calculated geometry is stored in a geometry cache and a cacheID is provided as the return value. If the path segment is queried several times and only the queried point changes, this cacheID can be used to access the data already calculated.
Programming/homing path interpolation 5.1 Programming ● _movePathPolynomial() Interpolation of polynomial paths (Page 26) – 2D in a main plane – 3D ● _stopPath() Stops the current motion without terminating. ● _continuePath() Continues a stopped motion. With V4.2 and higher, the motion properties can be stated to continue the movement. 5.1.2.5 Object and Alarm Handling ●...
Programming/homing path interpolation 5.1 Programming 5.1.2.6 Object coordinates ● _enablePathObjectTrackingSuperimposed() Starts the synchronization action of a path object on an OCS. ● _getPathObjectBCSFromOCSData() Calculates a position (x, y, z) in the base coordinate system of the path object using the position in the object coordinate system.
Page 133
Programming/homing path interpolation 5.1 Programming Command Function Position*) _getPathAxesData() Path to axis with dynamic response data _getLinearPathGeometricData() Geometric linear path data _getCircularPathGeometricData() Geometric circular path data _getPolynomialPathGeometricData() Geometric polynomial path data _enablePathObjectSimulation() Places path object in simulation mode _disablePathObjectSimulation() Resets the path object out of simulation _resetPathObject() Resets the path object _resetPathObjectError()
Programming/homing path interpolation 5.1 Programming 5.1.3.2 Override behavior The response to command insertion is defined in the mergeMode command parameter. ● Override current interpolator command (mergeMode:=IMMEDIATELY) ● Overwrite commands in the buffer (mergeMode:=NEXT_MOTION) This command is executed as soon as the current interpolator command has been executed.
Programming/homing path interpolation 5.1 Programming ● The _stop() command from an axis involved in the path motion or participating via the path-synchronous motion does not stop the path motion on the path object, i.e. it has no effect (this is the same behavior as for the synchronous motion on the Synchronous technology object).
Programming/homing path interpolation 5.2 Local alarm response Local alarm response Local alarm responses are specified by means of the system. The following responses are possible: ● NONE: No response ● DECODE_STOP: Command decoding is canceled, but the current motion and command in the buffer remain active.
Appendix A Specific kinematics with TrafoID 1001 Type of kinematics Kinematics 1001 are 2D kinematics (X-Y) The following types of axes can be used: ● Axis A1 (X axis): Rotary or linear axis without modulo function ● Axis A2 (Y axis): Rotary axis without modulo function Display of kinematics Figure A-1 Kinematics display...
Page 138
Appendix A A.1 Specific kinematics with TrafoID 1001 Table A- 1 Kinematics parameter Parameter Unit Type Min. Kinematics.parameter[1] basicOffsetX e.g. mm LREAL -1E+012 1E+012 Kinematics.parameter[2] basicOffsetY e.g. mm LREAL -1E+012 1E+012 Kinematics.parameter[3] Reserved Kinematics.parameter[4] ratioA1 e.g. mm/° LREAL -1E+012 1E+012 Kinematics.parameter[5] length1 e.g.
Page 139
Appendix A A.1 Specific kinematics with TrafoID 1001 Figure A-3 Schematic display - kinematics 1001 Transformation in X direction Transformation in X direction can be used for linear and rotary axes (belt drive, spindle etc.). BCS.x.position=(axis position A1 * parameter[4]) - parameter[1] BCS.x.position=(axis position A1 * ratioA1) - basicOffsetX TO Path Interpolation Function Manual, 11/2010...
Page 140
Appendix A A.1 Specific kinematics with TrafoID 1001 Transformation in Y direction Within the kinematics' maximum, physical (axis) traversing range, transformation (MCS -> BCS) of the path object provides valid Cartesian values. If the axis is outside this range, 0.0 is output.
Page 141
Appendix A A.1 Specific kinematics with TrafoID 1001 Upper orientation Kinematics.parameter[8] ≠ 0.0 (e.g. 1.0) Figure A-5 Traversing range with orientation selected as upper TO Path Interpolation Function Manual, 11/2010...
Page 142
Appendix A A.1 Specific kinematics with TrafoID 1001 Lower orientation Kinematics.parameter[8] = 0.0 Figure A-6 Traversing range with orientation selected as lower TO Path Interpolation Function Manual, 11/2010...