Downloading Splines to the RMC

Note: For a discussion on splines themselves and how the RMC can use them, see Spline Overview.

 

There are three ways to download splines to the RMC:

Spline Download Speeds

 

  1. New Spline Point (X) and Set Spline Interval/End Segment (T) commands:

When used to perform final calculations, this command may not finish immediately. This command will process up to four points immediately. If more points are in the segment, then an additional control loop will be required for every seven points in the segment. Therefore, a 50-point segment on a module with a one-millisecond control loop time will require eight (8) milliseconds to process. The Acknowledge bit of the Status word will toggle when this command is completed. For example, six 50-point splines (one spline per axis) would take 8 milliseconds total, assuming all start at the same time.

 

  1. Spline Download Area (Ethernet or Serial):

When writing to the Spline Download Area on RMC-ENET or RMC-SERIAL modules, the calculations are done by the communication module and therefore happen VERY quickly, significantly faster than the X/T commands. For short splines, it won't be much faster since the processors need to communicate with one another, but for longer splines, it'll be significantly faster.

 

  1. Spline Download Area (PROFIBUS and Modbus Plus):

The final calculations are done using the same algorithm as the X/T commands, and therefore they'll be done 4 points in the first loop and 7 per each subsequent loop. Notice that for the Spline Download Area, each axis's spline is not done at the same time.

 

Spline Download Area Details

Note: The Spline Download Area requires RMC100 CPU control firmware dated 19991124 or later (or beta firmware dated 19990910B or later). The Spline Download Area over Ethernet also requires Ethernet firmware dated 19990831 or later.

 

The Spline Download Area is a block of 4096 registers in the RMC Register Map. RMC Ethernet, RMC Modbus Plus, and RMC PROFIBUS-DP in Message Mode use the register map. Therefore, the Spline Download Area is not available with Digital I/O or the PROFIBUS-DP module in Compact Mode.

The assignment of these registers depends on the following:

 

Note: The Static and Dynamic Spline Download Area formats apply to the entire table. Either the entire table is Static or it is dynamic.

 

Examples:

RMC100-M1-ENET

This module has two spline-capable axes, because MDT axes are never auxiliary pressure or force channels.

RMC100-Q2-A1-MB+

This module can have between 4 and 8 spline-capable axes. The quadrature axes are never auxiliary pressure or force channels, and therefore spline-capable. If the 12-bit analog module is configured as four auxiliary pressure channels, then none are spline capable, and therefore the RMC has a total of four spline-capable axes. If the 12-bit analog module is configured as four position- or velocity -reference channels, then all are spline capable, and therefore the RMC has a total of eight spline-capable axes.

 

Once you know the number of spline-capable axes, and whether you want to use the Static or Dynamic spline download area format, refer to the appropriate table below for the map of Spline Download Area register addresses:

 

Static Format with 2 Spline-Capable Axes

 

Register Description

Modbus
and TI505

 

PROFIBUS

Allen-Bradley
and SoftPLC

 

DL205/405

Siemens
S7-300/400

Axis 0 Interval Table Format

12289

12288

N48:0

V10000

DB192.DBW0

Axis 0 Interval Table*

12290-13312

12289-13311

N48:1-N51:255

V10001-11777

DB192.DBW2-2046

Axis 1 Interval Table Format

13313

13312

N52:0

V12000

DB193.DBW0

Axis 1 Interval Table*

13314-14336

13313-14335

N52:1-N55:255

V12001-13777

DB193.DBW2-2046

Axis 0 Point Count

14337

14336

N56:0

V14000

DB200.DBW0

Axis 0 Point Table**

14338-15360

14337-15359

N56:1-N59:255

V14001-15777

DB200.DBW2-2046

Axis 1 Point Count

15361

15360

N60:0

V16000

DB201.DBW0

Axis 1 Point Table**

15362-16384

15361-16383

N60:1-N63:255

V16001-17777

DB201.DBW2-2046

* The Interval Table contains 1022 intervals max.

** The Point Table contains 1023 points max.

 

Static Format with 3 or 4 Spline-Capable Axes

 

Register Description

Modbus
and TI505

 

PROFIBUS

Allen-Bradley
and SoftPLC

 

DL205/405

Siemens
S7-300/400

Axis 0 Interval Table Format

12289

12288

N48:0

V10000

DB192.DBW0

Axis 0 Interval Table*

12290-12800

12289-12799

N48:1-N49:255

V10001-10777

DB192.DBW2-1022

Axis 1 Interval Table Format

12801

12800

N50:0

V11000

DB193.DBW0

Axis 1 Interval Table*

12802-13312

12801-13311

N50:1-N51:255

V11001-11777

DB193.DBW2-1022

Axis 2 Interval Table Format

13313

13312

N52:0

V12000

DB194.DBW0

Axis 2 Interval Table*

13314-13824

13313-13823

N52:1-N53:255

V12001-12777

DB194.DBW2-1022

Axis 3 Interval Table Format

13825

13824

N54:0

V13000

DB195.DBW0

Axis 3 Interval Table*

13826-14336

13825-14335

N54:1-N55:255

V13001-13777

DB195.DBW2-1022

Axis 0 Point Count

14337

14336

N56:0

V14000

DB200.DBW0

Axis 0 Point Table**

14338-14848

14337-14847

N56:1-N57:255

V14001-14777

DB200.DBW2-1022

Axis 1 Point Count

14849

14848

N58:0

V15000

DB201.DBW0

Axis 1 Point Table**

14850-15360

14849-15359

N58:1-N59:255

V15001-15777

DB201.DBW2-1022

Axis 2 Point Count

15361

15360

N60:0

V16000

DB202.DBW0

Axis 2 Point Table**

15362-15872

15361-15871

N60:1-N61:255

V16001-16777

DB202.DBW2-1022

Axis 3 Point Count

15873

15872

N62:0

V17000

DB203.DBW0

Axis 3 Point Table**

15874-16384

15873-16383

N62:1-N63:255

V17001-17777

DB203.DBW2-1022

* The Interval Table contains 510 intervals max.

** The Point Table contains 511 points max.

 

Static Format with 5 to 8 Spline-Capable Axes

 

Register Description

Modbus
and TI505

 

PROFIBUS

Allen-Bradley
and SoftPLC

 

DL205/405

Siemens
S7-300/400

Axis 0 Interval Table Format

12289

12288

N48:0

V10000

DB192.DBW0

Axis 0 Interval Table*

12290-12544

12289-12543

N48:1-N48:255

V10001-10377

DB192.DBW2-510

Axis 1 Interval Table Format

12545

12544

N49:0

V10400

DB193.DBW0

Axis 1 Interval Table*

12546-12800

12545-12799

N49:1-N49:255

V10401-10777

DB193.DBW2-510

Axis 2 Interval Table Format

12801

12800

N50:0

V11000

DB194.DBW0

Axis 2 Interval Table*

12802-13056

12801-13055

N50:1-N50:255

V11001-11377

DB194.DBW2-510

Axis 3 Interval Table Format

13057

13056

N51:0

V11400

DB195.DBW0

Axis 3 Interval Table*

13058-13312

13057-13311

N51:1-N51:255

V11401-11777

DB195.DBW2-510

Axis 4 Interval Table Format

13313

13312

N52:0

V12000

DB196.DBW0

Axis 4 Interval Table*

13314-13568

13313-13567

N52:1-N52:255

V12001-12377

DB196.DBW2-510

Axis 5 Interval Table Format

13569

13568

N53:0

V12400

DB197.DBW0

Axis 5 Interval Table*

13570-13824

13569-13823

N53:1-N53:255

V12401-12777

DB197.DBW2-510

Axis 6 Interval Table Format

13825

13824

N54:0

V13000

DB198.DBW0

Axis 6 Interval Table*

13826-14080

13825-14079

N54:1-N54:255

V13001-13377

DB198.DBW2-510

Axis 7 Interval Table Format

14081

14080

N55:0

V13400

DB199.DBW0

Axis 7 Interval Table*

14082-14336

14081-14335

N55:1-N55:255

V13401-13777

DB199.DBW2-510

Axis 0 Point Count

14337

14336

N56:0

V14000

DB200.DBW0

Axis 0 Point Table**

14338-14592

14337-14591

N56:1-N56:255

V14001-14377

DB200.DBW2-510

Axis 1 Point Count

14593

14592

N57:0

V14400

DB201.DBW0

Axis 1 Point Table**

14594-14848

14593-14847

N57:1-N57:255

V14401-14777

DB201.DBW2-510

Axis 2 Point Count

14849

14848

N58:0

V15000

DB202.DBW0

Axis 2 Point Table**

14850-15104

14849-15103

N58:1-N58:255

V15001-15377

DB202.DBW2-510

Axis 3 Point Count

15105

15104

N59:0

V15400

DB203.DBW0

Axis 3 Point Table**

15106-15360

15105-15359

N59:1-N59:255

V15401-15777

DB203.DBW2-510

Axis 4 Point Count

15361

15360

N60:0

V16000

DB204.DBW0

Axis 4 Point Table**

15362-15616

15361-15615

N60:1-N60:255

V16001-16377

DB204.DBW2-510

Axis 5 Point Count

15617

15616

N61:0

V16400

DB205.DBW0

Axis 5 Point Table**

15618-15872

15617-15871

N61:1-N61:255

V16401-16777

DB205.DBW2-510

Axis 6 Point Count

15873

15872

N62:0

V17000

DB206.DBW0

Axis 6 Point Table**

15874-16128

15873-16127

N62:1-N62:255

V17001-17377

DB206.DBW2-510

Axis 7 Point Count

16129

16128

N63:0

V17400

DB207.DBW0

Axis 7 Point Table**

16130-16384

16129-16383

N63:1-N63:255

V17401-17777

DB207.DBW2-510

* The Interval Table contains 254 intervals max.

** The Point Table contains 255 points max.

Dynamic Format

The Interval Table contains 254 intervals max. The maximum number of points per axis is as follows:

1 - 2 spline capable axes: 1024

3 - 4 spline capable axes: 512

5 - 8 spline capable axes: 256

 

The Spline Download Area register map for Modbus, TI505, and PROFIBUS is given in the table below. For Allen Bradley, Soft PLC, DL205/405, and Siemens s7-300-400, add the Register # to the first Spline Download Area register:

 

First Register

Allen Bradley and Soft PLC

N48:0

DL205/405

V10000

Siemens s7-300-400

DB192.DBW0

 

 

 

Register Description

 

Register #

Modbus
and TI505

 

PROFIBUS

SDA Format - must be 2

0

12289

12288

Max Points per Axis* (MaxPts)

1

12290

12289

Axis 0 Interval

2

12291

12290

Axis 0 Actual Point Count

3

12292

12291

Axis 0 Point #0

4

12293

12292

Axis 0 Point #(MaxPts - 1)

2 + MaxPts +1

12291 +

MaxPts +1

12290 +

MaxPts +1

Axis 1 Interval

2 + MaxPts + 2

12291 +

MaxPts + 2

12290 +

MaxPts + 2

Axis 1 Actual Point Count

2 + MaxPts + 3

12291 +

MaxPts + 3

12290 +

MaxPts + 3

Axis 1 Point #0

2 + MaxPts + 4

12291 +

MaxPts + 4

12290 +

MaxPts + 4

Axis 1 Point #(MaxPts - 1)

2 + (MaxPts+2) +(MaxPts-1)

12291+

(MaxPts+2) +(MaxPts-1)

12290+

(MaxPts+2) +(MaxPts-1)

Axis 2 Interval

2 + (MaxPts+2)*2

12291+

(MaxPts+2)*2

12290+

(MaxPts+2)*2

Axis 3 Interval

2 + (MaxPts+2)*3

12291+

(MaxPts+2)*3

12290+

(MaxPts+2)*3

Axis 4 Interval

2 + (MaxPts+2)*4

12291+

(MaxPts+2)*4

12290+

(MaxPts+2)*4

Axis 5 Interval

2 + (MaxPts+2)*5

12291+

(MaxPts+2)*5

12290+

(MaxPts+2)*5

Axis 6 Interval

2 + (MaxPts+2)*6

12291+

(MaxPts+2)*6

12290+

(MaxPts+2)*6

Axis 7 Interval

2 + (MaxPts+2)*7

12291+

(MaxPts+2)*7

12290+

(MaxPts+2)*7

 

Interval Table Format

This single-register field defines the format of the Interval Table. The two formats defined are as follows:

Format

Interval Table

0

The interval between each spline point is equal. Only the first Interval Table entry is used. It is used for the intervals between all points.

If the first Interval Table format register is 0, it specifies that Static Spline Download Area format is to be used. You must use the Static Spline Download Area Format Tables.

1

One Interval Table entry is used for each interval between points.

If the first Interval Table format register is 0, it specifies that Static Spline Download Area format is to be used. You must use the Static Spline Download Area Format Tables.

2

The value 2 is only valid in the first register of the Spline Download Area. It specifies that Dynamic Spline Download Area format is to be used. You must use the Dynamic Spline Download Area Format table.

 

Interval Table

These registers are used to determine the distance between each point in the spline segment. The distance is in terms of milliseconds if the spline will be executed based on time, or counts the master moves if the spline will be geared to an axis or digital I/O counter. If the Interval Table Format is 0, then only the first register is used from this table, but it is used for the interval between every pair of points. If the Interval Table Format is 1, then as many intervals as the number of points that are in the spline minus one are used (since there are n-1 intervals between n points).

Note: The contents of this table are not used until the Point Table is filled in. Generally the Point Count and Point Table are downloaded after the Interval Table is downloaded. However, this table must be filled in prior to downloading values to the Point Table.

Point Count

This register indicates the number of points in the spline.

Point Table

This table must be downloaded to last. When a number of points equal to the Point Count has been downloaded to this area, the spline segment is calculated and added to the given axis’s spline table. If this operation is successful, the Acknowledge bit of the Status Word is toggled. If the operation fails, the Parameter Error bit of the Status Word is set and the Last Parameter Error register is set with the error number.

Example 1

In this spline segment, all points are equidistant along the X (time or geared) axis:

image\ebx_103461500.gif

Assuming this segment is being downloaded to axis 0 on an RMC with just two spline-capable axes, here is the register assignment:

Address

Register

Value

12288

I.T. Format

0 (equal intervals)

12289

Interval Table – 0

T (interval between each point pair)

14336

Point Count

5

14337

Point Table – 0

P0

14338

Point Table – 1

P1

14339

Point Table – 2

P2

14340

Point Table – 3

P3

14341

Point Table – 4

P4

 

Example 2

In this spline segment, the distance along the X (time or geared) axis between points varies:

image\ebx_87063914.gif

Assuming this segment is being downloaded to axis 0 on an RMC with just two spline-capable axes, here is the register assignment:

Address

Register

Value

12288

I.T. Format

1 (separate intervals)

12289

Interval Table – 0

T0 (distance between P0 and P1)

12290

Interval Table – 1

T1 (distance between P1 and P2)

12291

Interval Table – 2

T2 (distance between P2 and P3)

12292

Interval Table – 3

T3 (distance between P3 and P4)

14336

Point Count

5

14337

Point Table – 0

P0

14338

Point Table – 1

P1

14339

Point Table – 2

P2

14340

Point Table – 3

P3

14341

Point Table – 4

P4

 

Spline Download Procedure

  1. Write to the Interval Table Format register to indicate the format of the Interval Table.

  2. Write to the Interval Table. If the Interval Table Format register is zero (0), you will only need to write to the first register in the table. If the Interval Table Format is one (1), you will need to write to as many registers are there are points minus one (that is, for n points, there are n-1 intervals between them).

  3. Write to the Point Count register. This will be the count of the points to be downloaded in the spline segment.

  4. Write to the Point Table. When the last point in the spline (determined by the value of the Point Count register) is written, the spline segment will become part of the axis’s spline table. When this operation is complete, the Acknowledge bit in the Status word for that axis will toggle.

  5. If you wish to download another spline segment, only step 4 needs to be repeated. Any of steps 1, 2, and 3 can be repeated, but only need to be if their values are going to change. For example, you wish to change the number of points in the next segment, or you wish to change the intervals between points.

When writing the above registers, neither timing nor number of writes used are critical. For example, step 1 can precede step 2 by a few milliseconds or a few minutes. Or, every register can be written separately, or more commonly, steps 1 and 2 will be accomplished in a single write, and steps 3 and 4 will be accomplished in a second write. Of course, there may be cases where you are downloading more points than your PLC allows registers to be written at once. In these cases, it is perfectly acceptable to use multiple writes.

 

Important Notes

kadov_tag{ {
}} Metadata type="DesignerControl" startspan Metadata type="DesignerControl" endspan Metadata type="DesignerControl" startspan Metadata type="DesignerControl" endspan Metadata type="DesignerControl" startspan Metadata type="DesignerControl" endspan

 


Copyright (c) 1997-2015 by Delta Computer Systems, Inc.