cRIO and EtherCAT Chassis Can’t Acquire Data After NI Scan Engine Warning 66030 and Error -66460

Updated Sep 14, 2023

Reported In

Hardware

  • NI-9144
  • NI-9145

Software

  • LabVIEW
  • LabVIEW Real-Time Module

Driver

  • NI-Industrial Communications for EtherCAT

Issue Details

I have deployed my LabVIEW project in a system comprised of a cRIO, EtherCAT chassis, and multiple acquisition modules.

During startup, the first NI Scan Engine variable to execute in the block diagram returns Warning 66030 with the following description:

This I/O variable is referencing an I/O device or channel that is not active in the current I/O mode. Data read may be stale or invalid and data written may not be sent to the output.


Immediately after, the ERR LED in the EtherCAT chassis starts blinking following a blink twice and pauses pattern, and no new data can be received.

According to the EtherCAT chassis manual (NI-9144 Features: ERR LED Indicators, NI-9145 Features: ERR LED Indicators), the LED pattern means that:

There is an application watchdog timeout. The slave did not receive a scheduled EtherCAT telegram.


Executing the Get Fault List function after the issue returned Error -66460 with the next definition:

The I/O scan time exceeded the NI Scan Engine period you specified on the Scan Engine page of the target properties dialog box.

Solution

Try the following recommendations to resolve the symptoms described above:
  1. Include a wait of 30 to 60 seconds in your code before accessing any I/O variable during startup to allow the NI Scan Engine to initialize all channels properly.
  2. If your application requires the NI Scan Engine to deploy several I/O channels, consider increasing the Scan Period as shown in the following steps and images.
    1. In your LabVIEW project, identify your cRIO target and open the contextual menu by right-clicking on it.
    2. Press the Properties option.
    3. Open the Scan Engine category in the newly opened Real-Time CompactRIO Properties dialog.
    4. Increase the Scan Period to guarantee that the Scan process and Application Logic have enough time to execute within an iteration.
    5. Press the OK button to save the changes.
 
image.png       
  1. Finally, to maximize the NI Scan Engine performance and allow a shorter Scan Period, consider undeploying any I/O items that you do not plan to use in the application.

Additional Information

When running on an RT target, the NI Scan Engine starts automatically when you boot the target and runs continuously until you shut down the target.

By default, the NI Scan Engine runs in a thread above time-critical priority on RT targets, which requires synchronizing the deterministic sections of the application with the scan period to ensure that the scan thread does not affect the determinism of the application.

If the Scan Period set is shorter than the time needed to Scan and execute the Application Logic, or the I/O variables are accessed before the NI Scan Engine finishes initializing, the application will return a warning or error.