Crossloads and Scan Time for Standard Tasks

It is important to plan for controller crossloads because the length of the crossloads affects the scan time of programs in standard tasks. A crossload is a transfer of data from the primary controller to the secondary controller. The crossload can occur at the end of each program or at the end of the last program in a task.
The scan time of your program or phase is a total of the program execution time and the crossload time. The following diagram demonstrates this concept.
Crossload and Scan Time
Crossload and Scan Time
The amount of time that is required for a crossload depends primarily on the amount of data that is crossloaded. During a crossload, any tag that has been written to during the program execution is crossloaded, even if the tag value has not changed.
The crossload requires time to transfer tag value changes. The crossload also requires a small amount of overhead time to communicate information about the program being executed.

Redundancy Object Attributes for Crossload Time

Before you complete calculations to estimate the crossload time, use a Get System Value (GSV) instruction to read certain attributes of the redundancy object. These attributes provide data transfer sizes that are measured in DINTs (4-byte words). You can use these sizes to estimate crossload time.
To get redundancy object attributes, the secondary chassis is not required to be in operation. If the secondary chassis is not in operation, the attribute values indicate the data sizes that would be transferred if the secondary chassis was in operation.
Crossload Data Size Attributes
Attribute
Description
LastDataTransferSize
Obtains the transfer size of the previous crossload and synchronization point that occurred before the program that contains the GSV instruction.
MaxDataTransferSize
Obtains the maximum data size that is transferred from the program that the GSV executes within. This data includes program-scoped data and controller-scoped data that was changed after the previous synchronization point.
To measure the crossloaded data from the last program in the program list of the task, add a program at the end of the task that acquires the LastDataTransferSize value from the program that was formerly at the end of the task.

Estimate Crossload Time per Sync Point

A sync point is a mechanism that the primary controller uses to keep the secondary controller in sync. By default, at the end of each program scan in a standard task, the primary controller sends the secondary controller the sync point and the secondary controller responds by moving its execution pointer to match the primary controller. The default for phases is not to send a sync point. Before you estimate the crossload time of your controllers for each program in a standard task, obtain the following:
  • The size of the last data transfer
  • The maximum size of data that is transferred
Crossload time equations are derived from tests that are performed on the latest supported firmware revisions.
The following equations apply when a
ControlLogix®
5590 controller is paired with a 1756-RM3 redundancy module in both chassis of a redundant chassis pair. Crossload times differ depending on whether the controller uses the backplane only or front Ethernet ports to crossload data.
IMPORTANT: For the fastest performance, configure Front Port Crossload mode.
Front Port Crossload Time
Controller Firmware Revision
Crossload Time per Sync Point (ms)
38
With front port crossload security enabled: (DINTs * 0.000200) + 0.18 ms
With front port crossload security disabled: (DINTs * 0.000170) + 0.17 ms
Backplane Crossload Time
Controller Firmware Revision
Crossload Time per Sync Point (ms)
38
With fiber security enabled: (DINTs * 0.000396) + 0.29 ms
With fiber security disabled: (DINTs * 0.000319) + 0.21 ms
Provide Feedback
Have questions or feedback about this documentation? Please submit your feedback here.
Normal