Correcting SoftMotion Scan Engine Errors -2147138411 and -77055

Updated Jun 13, 2018

Reported In

Hardware

  • NI-951X

Software

  • LabVIEW SoftMotion Module
  • LabVIEW

Issue Details

When I am using SoftMotion with my LabVIEW Real-Time target, I occasionally get a Scan Engine error in the following situations:
  • Using EtherCAT drives with SoftMotion, I get error -2147138411: Not all of the slave devices in the network are responding to the master when a drive is power cycled.
  • Using NI 951x modules in hybrid mode, I get error -77055: Communication with the device has timed out after the FPGA VI is stopped.
  • Using EtherCAT drives and FPGA code, I get error -77055: Communication with the device has timed out.
  • Using hybrid mode on my Real-Time target, the Scan Engine will not go into Active Mode after starting the FPGA VI

Solution

You will need to reinitialize the SoftMotion Engine. Two reinitialization sequences and their corresponding pieces of example code are described below to ensure that your code runs in the appropriate Scan Engine mode.

To reinitialize the Scan Engine: 
  1. Transition the Scan Engine to Configuration Mode 
  2. Clear any Scan Engine faults 
  3. Reset the SoftMotion Engine
  4. Transition the Scan Engine to Active Mode


If you are using the NI 915x drive interface modules in hybrid mode, or using a Real-Time target running user-programmed FPGA code:  
  1. Transition the Scan Engine to Configuration Mode
  2. Load, reset, and run the FPGA bitfile
  3. Clear any Scan Engine faults
  4. Reset the SoftMotion Engine
  5. Transition the Scan Engine to Active Mode 

 Also run this code as part of your initialization code in RT main to make sure that the scan engine and FPGA is initialized in the proper order. 
 

Additional Information

SoftMotion requires that the Scan Engine be in Active Mode while running user code. However, there are several scenarios where the Scan Engine will experience faults. When Scan Engine faults occur, the Real-Time target is unable to transition successfully to Active Mode until the faults are cleared. 

The two most common scenarios to experience Scan Engine faults with SoftMotion are: 
  • disruptions in EtherCAT communication
  • deploying FPGA bitfiles
When Scan Engine faults occur, the SoftMotion Engine needs to be reinitialized. Error -77055 will occur if the Scan Engine is able to recover, but the SoftMotion encounters an error state. 

The Real Time target is running in hybrid mode when any user-programmed FGPA code is running at the same time as SoftMotion. This includes 950x drive modules combined with User Defined Variable (UDV) axes.

If you are using NI-RIO 13.0, the reinitialization sequences can generate errors due to the FPGA reference being slow to update. For more information and a workaround, please see Why Do I Get RIO Scan Interface or Scan Engine Errors When Calling FPGA Reset in RIO 13.0? 

If you are using NI System Configuration 14.0 or earlier, Find Hardware.vi is named Find.vi.

WAS THIS ARTICLE HELPFUL?

Not Helpful