Troubleshooting Real-Time Controller Crashes

Updated Aug 30, 2023

Reported In

Hardware

  • CompactRIO Chassis

Software

  • LabVIEW Real-Time Module

Operating System

  • LabVIEW Real-Time (NI Linux Real-Time)
  • Phar Lap

Issue Details

  • I have a CompactRIO (cRIO) controller that keeps crashing when I run Real-Time LabVIEW code. How can I troubleshoot this?
  • What factors can cause a Real-Time controller to crash?

Solution

Crashes on Real-Time controllers can be caused by a range of software or hardware factors. Follow the steps below to narrow-down the possible causes of your crash.
  • Locate the Real-Time Error Log file and search for error details.
    • Refer to Error Log File for My Real-Time Controller Crashes for instructions.
    • The error log will list LabVIEW, Real-Time and exception errors. Once an error is identified, enter the error code into the NI website to search for further troubleshooting guidance.
  • Verify that the controller's CPU usage does not exceed 75%, and that there is plenty of available memory.
  • If the controller is running LabVIEW code, simplify the code to isolate the section that causes failure.
    • If the crash occurs inside a Real-Time executable, verify whether the same behaviour occurs from the LabVIEW development environment.
    • Use Diagram Disable Structures to disable sections of code.
    • If loops are used, ensure that there is adequate timing in place. If timing has already been implemented, check whether the problem persists when loops execute less frequently.
    • Minimise the amount of Front Panel objects.
    • Refer to Troubleshooting LabVIEW Crashes for further guidance on troubleshooting LabVIEW code.
  • Ensure that there are no other scripts or processes running on the controller that could cause it to hang.
  • Check the status of the controller's LEDs after the crash.
    • Refer to your controller's user manual to determine if the LEDs are indicating a specific problem.
  • Reformat the controller and reduce the installed software set.
  • Verify whether a simple VI works on the controller.
    • For example, create a Real-Time VI consisting of a While Loop  with a Wait (ms) function set to wait for 1000 ms.
    • If a simple VI reliably causes crashes, it's possible that hardware timing has failed on the controller. Contact NI Support for further assistance.