Tangential control

Tangential control can be activated or deactivated individually for each path segment. The settings are retained modally. The tangential control is deactivated in the basic state.

When tangential control in the X-Y plane is activated, the X-axis of the tool coordinate system in the perpendicular projection of the path on the X-Y plane is aligned tangentially to the path in the direction of movement. Accordingly, the Y-axis is tangentially aligned for tangential control in the Y-Z plane, and the Z-axis is tangentially aligned for tangential control in the Z-X plane.

The X-Y plane is set in the basic state. It can be set in the SET_TANGENTIAL_PARA SRL command as well as in all SRL circle commands. The tangential control and the circular interpolation are performed in the same plane.

Depending on the configured kinematic model, a specific plane must be set when tangential control is activated, otherwise error message 16#7E7C "TangentialControlInChosenPlaneNotPossible" is output. The X-Y plane must be set for kinematic models with the Cartesian degrees of freedom RotZ or RotZ/RotY or RotZ/RotX. The Z-X plane must be set for kinematic models with RotY or RotY/RotX. The Y-Z plane must be set for kinematic models with RotX. With tangential control deactivated, all planes can be set for circular interpolation.

With kinematic models without a rotational Cartesian degree of freedom, tangential control is basically not possible. Similarly, the current version of the software does not support tangential control for robots with three rotational Cartesian degrees of freedom. When the tangential control is activated with such kinematic models, the error message 16#7E7B "TangentialControlWithKinModelNotPossible" is issued.

To activate tangential control, at least one LINEAR or one CIRC command must be executed after the SET_TANGENTIAL_PARA SRL command. See also Setting tangential control. PTP commands cannot be executed when tangential control is activated. In this case, the error message 16#7E7D "TangentialControlWithPTPNotPossible" is displayed. The tangential control is deactivated either by corresponding parameterization by means of the SRL command SET_TANGENTIAL_PARA or automatically by establishing the basic state.

It is possible to set a desired angular offset between the path tangent and the coordinate axis of the tool coordinate system to be aligned in the SRL command SET_TANGENTIAL_PARA. This is useful if, for example, a saw blade must not be guided exactly tangentially along the workpiece to be machined, but a defined angle of attack is required. By setting the angle offset 180°, for example, a knife can be rotated so that the other side of the blade can be used.

The rotational coordinate of the target position of a path segment that rotates about the axis perpendicular to the plane of the tangential control, e.g. RotZ with the X-Y plane set, is added to the parameterized angular offset for determining the angle of attack. The coordinate is used modally for a sequence of path segments with activated tangential control. If the coordinate in the first path segment of a sequence of path segments with activated tangential control is not specified in the SRL command, the value 0 is assumed.

If a path segment with tangential control activated has no translational motion component in the plane of tangential control, the orientation about the axis perpendicular to the plane of tangential control is maintained. In that case, neither the angular offset nor the corresponding rotational coordinate of the target position is used.

The alignment movement in a stop point to the tangent of the next path segment always takes place along the shortest path. Before tangential control causes limit switches to be violated, a path segment without tangential control may have to be executed or referenced with explicit specification of a specific tool orientation.

Path segments with activated or deactivated tangential control can be placed adjacent to one another with or without blending. With blending, the path segments are placed adjacent to one another without an idle state. If the tangential control is activated at the next path segment, the tangent is aligned in the blending. If the tangential control is deactivated for the next path segment, the next path segment starts with the orientation reached at the last target point, and the orientation is transferred accordingly in the blending. Without blending, but activated tangential control in the next path segment, the alignment movement takes place in the stop point between the path segments. Without blending, with tangential control deactivated in the next path segment, no alignment movement occurs at the stop point between the path segments.

In the blending range, there is a continuous transition between the translational and rotational degrees of freedom. It is not possible to infer a specific geometric shape (e.g. circular arc) in the blending range. Accordingly, small deviations may also occur during tangential control or radius correction in the blending range. If such deviations should be avoided, arcs must be represented by circle segments. For example, curves with variable radius of curvature in the G-code can be approximated by a sequence of short circle segments G2/G3. See also Overview: SRL commands supported in G-code.

If an alignment movement to the tangent of the next path segment occurs in a stop point, and the alignment movement exceeds a parameterizable limit angle, certain actions can optionally be executed before and after the alignment movement. The limit angle is set to 0° in the basic state. If the parameterizable stroke is <> 0 mm, a lifting movement is executed before the alignment movement, and an opposite lowering movement is executed after the compensation movement. If the parameter value is positive, the lifting movement takes place by the parameterized distance in the direction of the coordinate axis perpendicular to the set plane of the tangential control; if the parameter value is negative, the lifting movement takes place opposite to the coordinate axis. For example, when scribing a glass plate, it is possible to lift the tool off the workpiece before the alignment movement, in order to avoid damaging the workpiece and the tool.

Alternatively or additionally, it is possible to set that a CallFunction will be called before and after the alignment movement until it returns TRUE, and the following robot movement is only executed afterwards. For the code parts of the CallFunction to be executed before or after the alignment movement, the desired indices to be transferred uiCallIndex can be parameterized individually. In the CallFunction, for example, a pneumatic axis that is not part of the kinematic model can be activated to raise and lower the tool. If the stroke <> 0 mm and the execution of the CallFunction are parameterized, the CallFunction is executed before the lifting movement or after the lowering movement.

If a CallFunction should be executed, a CallFunction block must be linked to the robot, otherwise the error message 16#7E7A "TangentialControlCallFunctionNotLinked" will be issued. While the robot is waiting for TRUE to be returned, the message 16#17E70 "TangentialControlWaitingForCallFAtAlignment" is output for information.

In the basic state, the stroke is parameterized with the value 0 mm, and thus deactivated. Accordingly, the execution of the CallFunction is also deactivated in the basic state.

The tangential control can be activated, parameterized and deactivated by SRL command. For further information, refer to chapter Setting tangential control. In addition, the G-code import supports the common G-codes for tangential control. For more information, refer to the chapters Special features of the Siemens Sinumerik dialect for 840D and Special features of the Beckhoff TwinCAT CNC.

Example of a sequence of path segments with and without tangential control in the X-Y plane

[1]

Alignment movement of the X-axis to the tangent of the following path segment, taking into account the parameterized angular offset – with preceding/subsequent lifting/lowering movement in the Z-direction and/or execution of a CallFunction

[2]

Circle segment with activated tangential control, without angular offset

[3]

Blending with transfer of the orientation to the tangent of the following linear segment with activated tangential control, without angular offset

[4]

Alignment movement in the stop position as [1]

[5]

Linear segment with activated tangential control at angular offset 30°

[6]

No alignment movement in the stop point, since tangential control is deactivated in the following path segment

[7]

Circle segment without tangential control with target orientation RotZ = 0°

To realize a radius correction, e.g. for milling applications with a cylindrical tool, it is necessary to set the tool radius with tangential control in the X-Y plane in the Y coordinate of the tool transformation. Accordingly, the tool radius must be set in the Z coordinate for tangential control in the Y-Z plane, and in the X coordinate for tangential control in the Z-X plane. The sign determines on which side of the path the tool moves. For example, for tangential control in the X-Y plane, the setting must be made with a negative sign for the movement of the tool to the left of the programmed path, and with a positive sign for the movement of the tool to the right of the path. See application example Sudden changeover of the tool transformation. Note that there is an exact stop at the beginning and end of the alignment process for corners in the path without blending. It should also be noted that a path that is concave from the tool's point of view must have at least the radius of curvature of the cylindrical tool, i.e. it must not contain any corners without blending, for example, so that the tool does not overrun the path but moves exactly along it.

Examples of using tangential control for radius correction of a cylindrical tool

[1]

Concave path with radius of curvature > tool radius

[2]

Convex path without vertex

[3]

Convex path with vertex (2 straight lines without blending). Before aligning to the new tangent, a stop point occurs at [A], likewise at [B] after aligning.

[4]

Concave path with vertex (2 straight lines without blending, generally radius of curvature < tool radius). Before aligning to the new tangent, a stop point occurs at [C], likewise at [D] after aligning. In this case, the tool passes over the path in the area marked orange.