Archived:Error -2147138516 When Using a HBM Ethercat Slave Device

Updated May 3, 2021

NI does not actively maintain this document.

This content provides support for older products and technology, so you may notice outdated links or obsolete information about operating systems or other relevant products.

Reported In


  • Industrial Controller


  • Industrial Controller Device Drivers 17.0


  • HBM CX27B
  • HBM Gen17tA

Issue Details

I'm using a NI PXI RT controller to interface with e.g. an HBM CX27B or Gen17tA EtherCAT slave. I've set up EtherCAT slaves before and followed the Knowledge Base for adding third-party Ethercat slaves.
I keep getting the Error -2147135516: The NI Scan Engine could not be changed to Active mode because at least one slave device failed to enter Operational state. What could be wrong?


Although EtherCAT is defined as a standard, slight differences in the implementation of this standard are possible. For example, the National Instruments EtherCAT master expects an implementation with 4 Sync Masters instead of 8, as natively described by the HBM ESI files. Therefore, the first step is to go through the HBM toolchain Perception to create an ESI file. This should be sufficient for most Ethercat slaves. For special cases like the Genesis HighSpeed Equipment, additional steps might be necessary. Attached you can find a working version of the ESI file. If adaption of your file to that format does not help, the fastest solution is therefore to contact the HBM or National Instrument support to ask for help configuring the ESI file.

Additional Information

The HBM Ethercat slaves can be configured to output calculations instead of the original EtherCAT values. As such the EtherCAT slave "channels" do not relate to any physical channel on the equipment. The configuration of these calculations is also done in Perception.
Attached are two XML files, where GenHS_original.xml represents the original file for a HBM Gen17tA device, whereas GenHS_modified.xml is the version that is working with LabVIEW or VeriStand. When comparing both XML files, one can see that the original file contained AcquisitionState and AcquisitionTime, which are not supported by the master. After deleting this section and renaming the channels, the XML turns into a working state. These XML files are provided under the sample code license