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:
|
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:
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.
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.
|
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.
Multiple Curves - Evenly-Spaced Points (10)
Multiple Curves - Variable-Spaced Points (11)
Multiple Curves - Advanced Points (12)
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.
Partial Curve - Evenly-Spaced Points (20)
Partial Curve - Variable-Spaced Points (21)
Partial Curve - Advanced Points (22)
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)
Copyright © 2025 Delta Computer Systems, Inc. dba Delta Motion