This content is not available in your preferred language.

The content is shown in another available language. Your browser may include features that can help translate the text.

Time Drift and Jitter on Synchronization in a Real-Time CompactRIO Controller

Updated Nov 6, 2023

Reported In

Hardware

  • CompactRIO Controller

Software

  • LabVIEW Full
  • LabVIEW Real-Time Module

Operating System

  • NI Linux Real-Time

Issue Details

I am using multiple compactRIOs and they are all reporting back to a single window. What is the difference between system time drift and jitter in this situation? Is the jitter with RTOS on compact RIO is zero?How does it affect synchronization and what are the best methods for synchronization?

Solution

Jitter indicates how early or late a loop finishes in your RT code. It is a measurement and therefore cannot be found in any manual. Jitter is measured in absolute time and units will vary by situation and target. The jitter on RTOS is not zero, however it is bounded and lower in nature when compared to Windows.  For a Real-Time controller, jitter is usually expressed in microseconds. Jitter is very dependent on code architecture and resource utilization. For example, the jitter in a 904x series controller would be lower than on a 902x controller running the same code. The 904x controller is faster and has much more resources to maintain timing. 

The System Time Drift indicates how much your clock will drift over time. It is a property of the Real-Time Clock (RTC) chip on the controller. Drift values can be found in the manual as well as in the RT Help File. Drift is measured in parts per million (ppm) and is given by the following formula:

Time Drift in Seconds/Day = ( [ Accuracy in PPM ] / 1 Million ) * ( # Seconds Per Day )

For example, referring to the specifications for the 903x/904x/905x cRIO series controller, System Time Drift is 40 ppm at 25 Degrees Celsius. This indicates a drift of approx. 3.456 seconds/day. (12 PPM is approx. 1 second/day). 

The operating system clock is synchronized with the RTC at startup. Once running, the OS time is derived from the tick of the RTC, any drift encountered by running the controller over long periods of time can be adjusted by using the LabVIEW RT timing VIs such as Get/Set Date and Time.

Alternatively, you can use the following timing sources, in place of the RTC, by adjusting the INI file.

Refer to the following Whitepaper for an overview of all available synchronization technologys for CompactRIO.

These alternatives allow synchronization between different controllers. Refer to Related Links section for more information about using these resources.

LabVIEW 2009 features the ability to use absolute time timing sources to synchronize the start of timed structures running on one or more distributed computing devices connected over Ethernet. For more information on using absolute timing sources follow the LabVIEW 2018 help link below.

Additional Information

The absolute timing source relies on the system clock of the computing device on which the timed structure runs.