Troubleshooting: Application does not start

Wrong device instance

Output

003019 : PCI: device 00:19.0 found
003019 : *I8254x-EcLinkOpen() GetPciInfo failed (card not found in registry, 2. instance missing?)
003019 : CEcDeviceBase::Open() Failed to open link layer!

Problem

The wrong device ID was selected.

Solution

Change the device ID.

E.g.: Change

sudo ./EcMasterDemoEval -f ../../../../eni/06_ENI_2Elmo_1000ms.xml -i8254x 2 1 -perf

to

sudo ./EcMasterDemoEval -f ../../../../eni/06_ENI_2Elmo_1000ms.xml -i8254x 1 1 -perf

Bus configuration mismatch

Output

007270 : Cannot start set master state to INIT (Result = Bus configuration mismatch (0x9811001e))

Problem

The network description in the ENI file does not match the connected EtherCAT network.

This can be due different reasons:

  • Wrong ENI file selected
  • Not all slaves are connected
  • Not all slaves are powered

If the problem occurs irregularly, then there is probably a hardware problem:

  • Bad EtherCAT connection between slaves
  • Short-term power loss due insufficient power supply (the slave may be booting while the master attempts to connect

Timing problems

Warning and error messages like these:

082039 : eUsrJob_ProcessAllRxFrames - not all previously sent frames are received/processed (frame loss)!
082039 : No response on cyclic Ethernet frame
082039 : DCM Status: ERROR: controller error - synchronisation out of limit (0x981201C2)

indicates timing and real-time problems. See Timing problems for more information.

Add -v 3 to log the EtherCAT jitter.

I.e. Start demo:

sudo ./EcMasterDemoEval -f <path_to_eni>/ein.xml -i85254x 1 1 -perf -v 3

I.e. Output:

012080 : Job times during startup <INIT> to <OP>:
012080 : ================================================================
012080 : PerfMsmt 'JOB_ProcessAllRxFrames' (avg/max) [usec]:    1.6/  5.7
012080 : PerfMsmt 'JOB_SendAllCycFrames  ' (avg/max) [usec]:    5.4/  8.5
012080 : PerfMsmt 'JOB_MasterTimer       ' (avg/max) [usec]:    1.3/ 10.9
012080 : PerfMsmt 'JOB_SendAcycFrames    ' (avg/max) [usec]:    2.4/ 15.7
012080 : PerfMsmt 'Cycle Time            ' (avg/max) [usec]:  1000.0/1030.2
012080 : PerfMsmt 'myAppWorkPd           ' (avg/max) [usec]:    0.0/  0.4

This line:
012080 : PerfMsmt 'Cycle Time ' (avg/max) [usec]: 1000.0/1030.2
indicates a maximal jitter of 30.2nsec which is a small jitter.