Errors -2147138411 or -77055: SoftMotion Communication or Not Responding Error

Updated Jan 21, 2020

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.

Make sure you run one of the two examples below as part of your initialization code in RT main to ensure that the scan engine and/or FPGA is initialized in the proper order.

Reinitialize the Scan Engine, when not in hybrid mode: 

  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
Note: This image is a LabVIEW snippet, which includes LabVIEW code that you can reuse in your project. To use a snippet, right-click the image, save it to your computer, and drag the file onto your LabVIEW diagram.

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 
Note: This image is a LabVIEW snippet, which includes LabVIEW code that you can reuse in your project. To use a snippet, right-click the image, save it to your computer, and drag the file onto your LabVIEW diagram.

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.