Curve Data Formats

Several Curve Data Formats are available, which specify several things, including (1) the format of each point in the curve, (2) whether a single curve or multiple curves are being submitted, and (3) whether a complete curve or a part of a curve is being submitted.

The Curve Data always starts with the following two registers:

Note: Data types are all REAL.

Offset

Register

Description

0

Status

The value of this register when passed to the Curve Add (82) command is ignored, but after the Curve Add (82) command is issued, the value of this register will be controlled by the RMC and indicates the status of processing the curve. The user should monitor this to determine when the command is finished processing the curve data. The following values are defined:

  • Closed(0) Processing Not Started

    By convention the user may want to set this register to this value before issuing the command. This is not strictly necessary, but otherwise the user must make sure not to check this register until after the command has been received.

  • Closed(1) Processing

    Once the command has been received, the Status will immediately be set to Processing. While in this state the command is currently using the Curve Data structure, and the curve is not ready for interpolation.

  • Closed(2) Part Complete

    As described below, very long curves can be submitted in parts. Once the command has completed processing this Curve Data structure (i.e. this part of the total curve), this status value will be used. The user can now write down the next part of the curve.

  • Closed(3) Curve Ready

    Once the curve data has been processed, and the entire curve is ready for interpolation, the status will be set to this value. Notice that this value will also be used for the final part for long curves submitted in parts. Therefore, for the last part of a curve, the Part Complete (2) state wont be usedthe status will change from Processing (1) directly to Curve Ready (3).

  • Closed(10+) Error

    Values of 10 and above will indicate various errors. When an error code is set in this register, it indicates that the command is done trying to process this Curve Data, but the curve was not submitted to the curve store. See the Curve Status Error Codes topic for details.

 

1

Format

This register is set by the user and indicates the format of the curve data structure that follows. The following formats are defined:

 

Closed(0) Single Curve - Evenly-Spaced Points

In this format, the points are assumed to be evenly spaced along the X axis. Therefore, the X0 and X Interval are specified, but otherwise, just an array of Y values is included.

Closed(1) Single Curve - Variable-Spaced Points

In this format, the points are each given independent X and Y values, allowing variable spacing.

Closed(2) Single Curve - Advanced Points

This format expands on the Variable-Spaced Points format by allowing the velocity to be set at any point, and constant-velocity segments to be specified.

 

The Multiple Curve Formats allow multiple curves will be added at once. The user need only issue one Curve Add command and check a single Status register and know that all the curves have been successfully submitted.

 

Closed(10) Multiple Curves - Evenly-Spaced Points

In this format, the points are assumed to be evenly spaced along the X axis. Therefore, the X0 and X Interval are specified, but otherwise, just an array of Y values is included.

Closed(11) Multiple Curves - Variable-Spaced Points

In this multiple curve format, the points are each given independent X and Y values, allowing variable spacing.

Closed(12) Multiple Curves - Advanced Points

This multiple curve format expands on the Variable-Spaced Points format by allowing the velocity to be set at any point, and constant-velocity segments to be specified.

 

The partial curve formats are for adding a curve that is too large to submit all at once, and is described in detail in the Creating Large Curves using the Curve Add Command topic.

 

Closed(20) Partial Curve - Evenly-Spaced Points

In this format, the points are assumed to be evenly spaced along the X axis. Therefore, the X0 and X Interval are specified, but otherwise, just an array of Y values is included.

Closed(21) Partial Curve - Variable-Spaced Points

In this partial curve format, the points are each given independent X and Y values, allowing variable spacing.

Closed(22) Partial Curve - Advanced Points

This partial curve format expands on the Variable-Spaced Points format by allowing the velocity to be set at any point, and constant-velocity segments to be specified.

 

 

Single Curve - Evenly-Spaced Points

This is the simplest method. The spacing of the X values is constant. The X value for each point is defined as Xi = X0 + ΔX·i. This method does not support fixing velocities at any point or constant-velocity segments on cubic interpolated curves, except as defined by the selected Interpolation Options.

Note: Data types are all REAL.

Offset

Register

Description

0

Status

See Above

1

Format

(0) Single Curve - Evenly-Spaced Points

2

PointCount

Number of points in the curve (N). The minimum number of points is 2.

3

InterpOpt

Interpolation Options. See the Curve Interpolation Methods and Options topic for details.

+0:  Zero-Velocity Endpoints

+1:  Natural-Velocity Endpoints

+2:  Cyclic Curve

+8:  Overshoot Protection

+16: Auto Constant Velocity

4

X0

Point 0 X value

This value is only used when following a curve with absolute master alignment (only available with the Curve Start Advanced (88) command).

This value is not used when following a curve using the Curve Start (86) or Curve Start (Prs/Frc) (87) commands; the X0 point is the current value of the master at the time the command is issued. The remaining X-axis points are computed relative the master position when the Curve Start command is issued.

5

X Interval (ΔX)

Interval in X between Points

6

Y0

Point 0 Y value

7

Y1

Point 1 Y value

:

:

:

6+(N-1)

YN-1

Point N Y Value

Single Curve - Variable-Spaced Points

In this format, points are each given independent X and Y values—allowing variable spacing—but does not support fixing velocities or specifying constant-velocity segments on cubic interpolation, except as defined by the selected Interpolation Options. The X values must be increasing (Xi+1 > Xi).

Note: Data types are all REAL.

Offset

Register

Description

0

Status

See Above

1

Format

(1) Single Curve - Variable-Spaced Points

2

PointCount

Number of points in the curve (N). The minimum number of points is 2.

3

InterpOpt

Interpolation Options. See the Curve Interpolation Methods and Options topic for details.

+0:  Zero-Velocity Endpoints

+1:  Natural-Velocity Endpoints

+2:  Cyclic Curve

+8:  Overshoot Protection

+16: Auto Constant Velocity

4

X0

Point 0 X value

This value is only used when following a curve with absolute master alignment (only available with the Curve Start Advanced (88) command).

This value is not used when following a curve using the Curve Start (86) or Curve Start (Prs/Frc) (87) comamnds; the X0 point is the current value of the master at the time the command is issued. The remaining X-axis points are computed relative the master position when the Curve Start command is issued.

5

Y0

Point 0 Y value

6

X1

Point 1 X value

7

Y1

Point 1 Y value

:

:

 

4+(N-1)·2

XN-1

Point N-1 X value

5+(N-1)·2

YN-1

Point N-1 Y value

Single Curve - Advanced Points (2)

In this format, points are each given independent X and Y values—allowing variable spacing—and may be given fixed velocities. Also, segments can be designated as having a constant velocity. The X values must be increasing (Xi+1 > Xi).

Note: Data types are all REAL.

Offset

Register

Description

0

Status

See Above

1

Format

(2) Single Curve - Advanced Points

2

PointCount

Number of points in the curve (N). The minimum number of points is 2.

3

InterpOpt

Interpolation Options. See the Curve Interpolation Methods and Options topic for details.

+0:  Zero-Velocity Endpoints

+1:  Natural-Velocity Endpoints

+2:  Cyclic Curve

+8:  Overshoot Protection

+16: Auto Constant Velocity

4-7

Pt0

Point 0 structure. Each field is described below:

4

.Type

Point 0 Type. It can have these values:

(0) Standard

Only the X and Y values are used.

(1) Fixed Velocity

The V value later in this structure specifies the velocity to be used at this point. This point type is not supported by Constant or Linear interpolated curves.

If a point is defined as Fixed Velocity, but the preceding point is defined as Constant-Velocity, then the fixed velocity will be ignored and will be the same as the velocity calculated for the preceding Constant-Velocity segment.

(2) Constant–Velocity Segment

The segment between this point and the next is assumed to have fixed velocity. The velocity is implied from the Xi, Yi, Xi+1, and Yi+1 values, and therefore the V value is unused. This point type is not supported by Constant interpolated curves.

Setting the type of the last point in the curve to Constant-Velocity Segment will have no effect; it will behave as a Standard type.

5

.X

Point 0 X value

This value is only used when following a curve with absolute master alignment (only available with the Curve Start Advanced (88) command).

This value is not used when following a curve using the Curve Start (86) or Curve Start (Prs/Frc) (87) comamnds; the X0 point is the current value of the master at the time the command is issued. The remaining X-axis points are computed relative the master position when the Curve Start command is issued.

6

.Y

Point 0 Y value

7

.V

Point 0 V value. This is used only for type 1 (fixed velocity), and ignored by all other types.

8-11

Pt1

Point 1 structure

12-15

Pt2

Point 2 structure

:

:

 

4+(N-1)·4..

7+(N-1)·4

PtN-1

Point N-1 structure

 

If the Zero-Velocity Endpoints interpolation option is chosen, the velocity at the endpoints will zero, regardless of the point type.

Multiple Curve Formats

The multiple curve formats allow submitting multiple curves at once. They share the same curve data as the single curve formats with only slight modifications. When adding curves using the Multiple Curves formats, the curves will receive sequential ID numbers, starting with the ID specified by the Curve Add (82) command.

 

The following chart summarizes the multiple curves formats:

Note: Data types are all REAL.

Offset

Register

Description

0

Status

See Above

1

Format

Multiple Curves format (10-12)

2

CurveCount

Number of curves that follow (C)

3

RegsPerCurve

Number of registers to reserve for each curve (R)

This must be at least the number of registers required for the single curve format, minus two. Notice that each curve in the Multiple Curve Format need not fill the area specified by the RegsPerCurve. Extra registers are ignored.

4..4+(R-1)

Curve0

Data for Curve (PointCount)

 

This is the Point Count, since this the Data for Curve is the same data as the single curve formats, but without the first two registers (Status and Format).

4+R..

4+R+(R-1)

Curve1

Data for Curve 1

:

:

:

4+C·R-R..

4+C·R-1

CurveC-1

Data for Curve C-1

 

The format of the data within the Curvei is the same as the single curve formats, but without the first two registers (Status and Format).

Each curve in the Multiple Curve Format need not fill the area specified by the RegsPerCurve. Extra registers are ignored.

Partial Curve Formats

The partial curve formats allow submitting a very long curve in pieces. They are based on the single curve formats, but with modifications to support segmenting the entire download. For details on how to download large curves using the partial format, see the Creating Large Curves Using the Curve Add Command topic.

 

The following chart summarizes the partial curve formats:

Note: Data types are all REAL.

Offset

Register

Description

0

Status

See Above

1

Format

Partial Curve format (20-22)

2

PartOffset

Offset of this part of the whole curve (in registers)

3

PartLength

Number of registers in this part (L), excluding the 5-register part header. This is the number of PartData registers.

4

TotalLength

Total length of curve data (sum of all parts)

5..5+(L-1)

PartData

Segment of the curve data in the respective single curve format.

 

See Also

Curves Overview | Curve Status Error Codes | Curve Interpolation Methods and Options | Curve Add (82) | Curve Start (86) | Curve Start (Prs/Frc) (87)


Send comments on this topic.

Copyright © 2025 Delta Computer Systems, Inc. dba Delta Motion