Loop Time

The RMC is a deterministic controller. It reads the inputs, computes the control algorithms and updates the outputs at a specific interval. This interval is called the controller loop time, in reference to the way the controller repeatedly "loops" through its code.

The RMC will always run at its loop time setting. When it finishes all the calculations for one loop, it waits until the next loop time before doing its calculations again.

Setting the Loop Time

To set the loop time of the RMC, use the Control Loop Page.

Available Loop Times vs Axes

The loop times available on the RMC controllers are listed below, along with the expected number of axes supported by that loop time with a full load of motion commands, user programs, communications and plots. The user program time allocation is also affected by loop time, as described in Program Capacity and Time Usage.

High Control Loop Utilization

If you wish to use a loop time with more axes than listed below as being supported with a full load of motion commands, user programs, communications and plots, then you must enable High Control Loop Utilization in the Control Loop Page of the controller properties dialog.

The High Control Loop Utilization option does the following:

If you choose High Control Loop Utilization, then you must ensure that your application will run within the selected control loop time. See the Exceeding the Loop Time and Monitoring the Loop Time sections below.

RMC75 Loop Times

Loop times that support all axes configurations are indicated by a check mark .

 

Loop Time

 

4000 µs

2000 µs

1000 µs

500 µs

250 µs

RMC75E

1 axis only

RMC75S

1 axis only with up to one reference input

RMC75P
(2.1F or newer)

1 axis only with up to one reference input

RMC75P

(2.1E or older)

1 axis only with up to one reference input

RMC150 Loop Times

Loop times that support all axes configurations are indicated by a check mark .

 

Loop Time

 

4000 µs

2000 µs

1000 µs

500 µs

250 µs

RMC150E

1

1 or 2 axes only2

1 axis only3

1 4000 µs requires firmware 3.33.0 or newer or 3.36.0 if MDT modules are present. It is not supported by RMC150E/RMC151E CPU revision 1.2B or older or MDT (-M) modules revision 6.0 or older.

2 500 µs is not supported by SSI (-S) modules revision 5.0 or older, or Analog Input (-A, -H, and -G) modules revision 6.0 or older.

3 250 µs is not supported by SSI (-S) modules revision 5.0 or older, or any Analog Input (-A, -H, and -G) modules.

RMC200 Loop Times

In the tables below:

CPU20L

 

Expected Number of Axes Supported with:

Loop Time

 Full Load

Limited Load

125 µs

0 axes

Up to 3 control axes

(or 2 dual-loop)

250 µs

0 axes

Up to 7 control axes

(or 5 dual-loop)

500 µs

Up to 11 control axes
(or 8 dual-loop)

All

1000 µs

All

All

2000 µs

All

All

4000 µs

All

All

CPU40

 

Expected Number of Axes Supported with:

Loop Time

Full Load

Limited Load

125 µs

0 axes

Up to 6 control axes

(or 4 dual-loop)

250 µs

0 axes

Up to 11 control axes

(or 8 dual-loop)

500 µs

Up to 14 control axes
(or 10 dual-loop)

Up to 32 control axes

(or 23 dual-loop)

1000 µs

Up to 50 control axes
(or 36 dual-loop)

All

2000 µs

All

All

4000 µs

All

All

When is High Control Loop Utilization Required?

For the RMC200 controller, High Control Loop Utilization is required if the estimated axis processing time exceeds the processing time allowed for the selected loop time. The Axis Definitions dialog automatically provides a graphic indication of the estimated axis processing time and whether High Control Loop Utilization is required. The following tables are used to determine whether or not High Control Loop Utilization is required:

Maximum Total Axis Processing Time Allowed at Full Load

Loop Time

CPU20L

CPU40

125 µs

0 µs*

52 µs

250 µs

0 µs*

100 µs

500 µs

152 µs

302 µs

1000 µs

302 µs

not limited

2000 µs

not limited

not limited

4000 µs

not limited

not limited

*This means High Control Loop Utilization is always required.

Estimated Processing Time per Axis

Axis Type

CPU20L

CPU40

Single-loop Control Axis

11.9 µs

10.2 µs

Dual-loop Control Axis

16.0 µs

14.0 µs

Virtual Axis

7.9 µs

6.3 µs

Reference Axis

3.2 µs

2.5 µs

Output Only Axis

1.5 µs

1.2 µs

 

Notice that the estimated per-axis processing times shown above are conservative estimates assuming maximum processing, for purposes of determining whether High Control Loop Utilization is required. Actual processing time for axes will often be significantly less than these times indicate. However, the user should always verify that the application does not exceed the loop time excessively, as described below.

Exceeding the Loop Time

How the loop time works

The loop time is the pre-selected interval at which the RMC reads its inputs, processes motion commands and user programs, computes the control algorithms and updates the outputs. When it finishes all the processing for one loop, it waits until the next loop time before doing its calculations again. The amount of calculations can vary significantly from loop to loop, based on many factors including the commands received, user program calculations, and communications load. It is common that most of the actual loop times are low, and there are some loops that require much more time, such as during the loop time in which a motion command is received by an axis, which requires more processing.

Running over the loop time

If the loop processing takes longer than the specified loop time, the RMC will finish the processing and then immediately start on processing the next loop. The start of this next loop is therefore delayed, so the updating of outputs can also be delayed. If the loop time has been exceeded by only a small amount, such as 20%, then this delay is typically negligible, and the RMC will usually catch up with its processing in the next loop time. If the loop time has been exceeded by more, such as 75%, the delay is larger, but still usually negligible relative to the responsiveness of the physical system, especially if the RMC is able to catch up with its processing in the next loop time.

Do not exceed loop time by 100%

It is very important that the loop time is not exceeded by 100% or more. If it is, that loop time will be lost, and the RMC's calculations will not take it into account. This can cause the RMC's internal time calculations to lose one loop time, and the target motion profile calculations will be slowed by one loop time. If many loop times are lost, the target motion profiles may be significantly off, which could cause machine damage.

If consecutive loop times are exceeded such that the cumulative exceeded loop time is 100% or more, the RMC will also lose a loop time. It is important that this does not occur.

Event Log Reporting

Loop time overage of less than 80% is reported in the Event Log as a warning that can be filtered out. Loop time overage of 80%, or cumulative loop time overage of 80% or more is reported in the Event Log as an error.

In summary

Monitoring the Loop Time

Monitor the loop time in the following ways:

Reducing the Loop Time Used

If the RMC is exceeding the loop time, you can attempt to reduce the loop time used, or select a larger loop time. To reduce the loop time used, you can plot the loop time registers as described in Plotting the Loop Time to determine which part of the loop is taking the most time, then use one or more of the following tips to reduce the loop time:

User Programs

Commands:

Plots:

Communications:

Using the Loop Time in Expressions

Certain calculations in user programs, especially for calculating time, may require accessing the current set loop time. The _LoopTime tag can be used to access the loop time when using expressions. _LoopTime is a REAL, and is specified in seconds.

 

See Also

Program Capacity and Time Usage | Plotting the Loop Time |  Control Loop Page


Send comments on this topic.

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