Please see below some possible solutions for this behavior:
- If your slave device profile uses a Modular Device Profile (MDP), you must place both the parent XML file and modules file in the same folder, and import the entire folder via this method. If you are unsure whether your device has an MDP, please contact your slave device vendor.
- If you are using your Windows machine as an EtherCAT master, it's expected not to see the EtherCAT slave as Windows is not a deterministic environment, thus it doesn't support this communication protocol. To go around this, you can install a real-time OS on your computer by following this link or you can simply use a real-time controller as an EtherCAT master.
- If you are using NI-Industrial Communications for EtherCAT 15.0, 16.0, or 17.0, this is a known issue fixed in NI-Industrial Communications for EtherCAT 16.1. It occurs with the configuration shown in the table below. You should update/revert to NI-Industrial Communications for EtherCAT 16.1 to fix this behavior.
|Driver||Operating System||LabVIEW Version|
|NI-Industrial Communications for EtherCAT 17.0||All Windows||All|
|NI-Industrial Communications for EtherCAT 16.0||Windows 10 (64-bit)||2016 (32-bit)|
|NI-Industrial Communications for EtherCAT 15.5||Windows 7||2015 SP1|
If you are unable to update/rollback to NI-Industrial Communications for EtherCAT 16.1, follow the following steps below to fix the issue:
- Manually move the XML files to the following location depending on your LabVIEW version:
- If you have LabVIEW 2013 SP1 and later then move it to this location depending on your LabVIEW version: C:\Program Files (x86)\National Instruments\LabVIEW XXXX\resource\Framework\Providers\indcomecat\DD
- For LabVIEW 2013 and earlier, move it to this location: C:\Program Files(x86)\National Instruments\Shared\IndComECAT\DD
- Restart LabVIEW
The slave should now appear when you try to add a new slave to an existing master in the project. If the EtherCAT device still doesn't show up, try editing the XML file to remove any forward slashes from any name fields. For instance, changing <Name>Fx/Gage0</Name> to <Name>FxGage0</Name>.