EtherCAT Software FAQ


FAQ2024: I changed my PC and the duration of JOB_SendAllCycFrames becomes worse. What can I do?

Most of the performance issues on the PC platform are related to power management, specially ASPM. Please disable in BIOS everything related to power management. Here are some hints: https://developer.acontis.com/pcob.html

Doing this could improve the following performance:

PerfMsmt 'JOB_SendAllCycFrames Duration ' (min/avg/max) [usec]: 3.6/ 4.8/ 311.2

to

PerfMsmt 'JOB_SendAllCycFrames Duration ' (min/avg/max) [usec]: 3.2/ 4.1/ 27.4

Last update on 2024-02-20 by EtherCAT Support Team.

FAQ2023: What is the difference between emCoeSdoDownload and emCoeSdoDownloadReq?

emCoeSdoDownload will wait until the transfer is finished.
emCoeDownloadReq will just create a download request and return without waiting for the transfer to be finished.
 

Last update on 2022-07-06 by EtherCAT Support Team.

FAQ2022: In the EC-Master User Mannual ,regarding emCoeSdoDownload, it is mentioned that "This function may not be called from within the JobTask's context", what is the reason behind that?

When emCoeSdoDownload is called from within the job task this will lead to a deadlock. The API will block the job task.
 

Last update on 2022-07-01 by EtherCAT Support Team.

FAQ2021: How would I know if I need to configure DCm or not depending on the ENI file ?

After calling ConfigureMaster(), you can call DcmGetBusShiftConfigured(), if the returned value is True, DCm should be configured using DCmConfig(). Otherwise, you should not be considering configuring DCm.

Last update on 2022-07-01 by EtherCAT Support Team.

FAQ2020: I am trying to start the EcMasterDemo as a runit service on Linux, but the initializing of the master stack is returning a no memory error. How can I work around this?

The maximal locked memory for the runit services is set to 64KB by default. Try to increase this limit using the following linux command:

ulimit -l your_new_limit_in_kb

For example , if we want to change the maximal locked memory to 16MB,  : ulimit -l 16384

to print the ulimit values use the following command: ulimit -a

Last update on 2022-04-19 by EtherCAT Support Team.

FAQ2019: How can I start the EcMasterDemo as a Daemon or background process or service on Linux?

First of all you need to create a shell script file containing the following two lines:

#!/bin/bash
LD_LIBRARY_PATH=<path_to_linklayer_libraries>  <path_to_EcMasterDemo>/EcMasterDemo -i8254x 1 1

please change -i8254x 1 1 with your appropriate demo command line.

In the following this shell script file will be called myscript.sh. This script can be then called with the following command line to start it as daemon or a background process.

daemon --name "yourservicename" --output=log.txt sh <path_to_your_script>/myscript.sh  

Last update on 2022-04-13 by EtherCAT Support Team.

FAQ2018: Which API is appropriate to use to determine the slave disconnection?

To determine the slave disconnection one should use emIsSlavePresent() API

Last update on 2022-02-10 by EtherCAT Support Team.

FAQ2017: What can be the reason for the error message "FrameAlloc::EcLinkAllocSendFrame() supported but reports no memory!"

This message can point to not recoverable internal error in the link-layer. But in 99% of all cases it is related to a parallel access to the network adapter hardware.

  • Please double check if the OS native driver is not enabled

  • If the application is running in a real-time extension context like, EC-Win, INtime or RTX, please double check if the hardware has been properly assigned to the real-time context and if the native driver in the real-time context is not enabled.

Last update on 2022-01-17 by EtherCAT Support Team.

FAQ2016: How can I access CAN devices via CANopen Master EL6751

It's possible to read and write register on CAN device with the help of AoE like shown in this code snippet.

Last update on 2021-12-16 by EtherCAT Support Team.

FAQ2015: Are there any settings required to receive "ecatNotify – eMbxTferType_COE_EMERGENCY"? Or is this notification always valid?

This type of notification is used for CoE emergency Mailbox Transfer, which transmit error messages between the Master and the Slave.

This feature is always enabled, because without it the Master won't be able to detect errors occuring in the slaves.

Last update on 2021-12-06 by EtherCAT Support Team.

FAQ2014: What is the difference between Master-Shift and Bus-Shift in DC?

When using Master-Shift the reference clock is the bus clock.  The Master timer will be synchronized to the slave clock, but the  feasibility depends on the target's HW and SW.  
When using Bus-Shift the reference clock is the Master clock. We synchronize the slaves to the Master timer.
 

Last update on 2021-12-06 by EtherCAT Support Team.

FAQ2013: How can I send more than 1514 data Bytes in one cycle? Is the Master able to send more than one frame per cycle?

Actually, in each frame you can send maximally 1498 data Bytes, The 1514 Bytes are the total length of an EtherCAT frame (Headers + Data).

The Master can send more than one frame per cycle.

Last update on 2021-11-11 by EtherCAT Support Team.

FAQ2012: How can I force a Master, configured with an appropriate ENI, to go into a specific state, even when a slave or a line, which was specified in the ENI, is missing from the bus?

After ecatInitMaster() , you just need to add the following lines to your code:

EC_T_DWORD dwAllSlaveMustReachMasterState = EC_FALSE;
ecatIoCtl(EC_IOCTL_ALL_SLAVES_MUST_REACH_MASTER_STATE, (EC_T_BYTE*)&dwAllSlaveMustReachMasterState, sizeof(EC_T_DWORD), EC_NULL, 0, EC_NULL);
 

Last update on 2021-11-11 by EtherCAT Support Team.

FAQ2011: Can the PRU-ICSS ports be used in parallel as follows: ICSS port 1 for EcMaster and ICSS port 2 for TCP/IP?

No, the ports of the PRU-ICSS can not be used in parallel for Master and TCP/IP at the same time. The two ports represent one module that can be either used by the Master or by the operating system for TCP/IP.

Last update on 2021-11-10 by EtherCAT Support Team.

FAQ2010: How to proceed when my Ethernet-PHY is not supported?

If the PHY is not known by our driver it tries a default initialization, often this is enough.
If it's not working and you are using Linux and with our FslFec, Gem, Dw3504 or Icss LinkLayer, you can use the PHY-driver from Linux.
For this you have to add atemsys as compatible driver for the Ethernet device and to initialize EcMaster with “OsDriver” instead of the PHY-interface parameter, see the atemsys documentation and LinkLayer command line parameters.

Last update on 2021-11-10 by EtherCAT Support Team.

FAQ2009: How can I send more than 12kB data in one cycle using the ICSS Link Layer without any frame loss?

First of all, the Link Layer must be used in Interrupt mode. Moreover, the ICSS link parameter bUseAllSendQueues must be set to true, so that the additional 3 queues with lower priority can be used to send more frames per cycle.

Last update on 2021-11-09 by EtherCAT Support Team.

FAQ2008: While using cable redundancy, we took a Wireshark capture from the main line and observed that the values of the Working Counters (WCs) and PDOs are always 0, is the Master working properly?

Yes, the Master is working properly. One have to make a Wireshark capture from the side of the redundant line to be able to examine the actual WCs and PDOs.

Last update on 2021-11-09 by EtherCAT Support Team.

FAQ2007: How can I convert master error codes to ETG error codes?

Master error codes for the protocols Ads, FoE, SoE and CoE are not equivalent to the error codes specified by the ETG.
It's possible to convert master error codes to the error codes specified by the ETG using the following API's:
 
protocol master API
AoE emConvertEcErrorToAdsError
FoE emConvertEcErrorToFoeError
SoE emConvertEcErrorToSoeError
CoE emConvertEcErrorToCoeError

Last update on 2021-11-09 by EtherCAT Support Team.

FAQ2006: How can I build atemsys if no kernel headers are available on my linux target?

You can build atemsys on a different machine as follows:

  1. Get Kernel sources of your desired version. E.g.:
    1. Clone with git: git clone -b v4.4.189 https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
    2. Download from kernel.org: https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/linux-4.4.189.tar.gz
  2. Unpack\clone the kernel into directory /linux
  3. Unpack /proc/config.gz from target into /linux directory:
    zcat config.gz > linux/.config
  4. Prepare kernel:
    cd linux
    make oldconfig
    make prepare
    make modules_prepare
    cd ..
  5. Unpack atemsys source into directory /atemsys (besides /linux)
  6. Build atemsys:
    cd atemsys
    make KERNELDIR=../linux/ modules

If you want to cross-build another architecture, add ARCH and CROSS_COMPILE to the make command, e.g.:

  • ARM 32Bit:
    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
  • ARM 64Bit:
    make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-

 

Last update on 2021-02-04 by EtherCAT Support Team.

FAQ2005: What can be the reason for EC_NOTIFY_FRAME_RESPONSE_ERROR?

  1. The frame sent was lost or damaged in the network.
    The reasons for this can be:
    • A faulty slave
    • Interference on the cable due to noisy environment (EMI)
  2. ecatExecJob(eUsrJob_ProcessAllRxFrames, &oJobParms); called before frame returned from network.
    This can happen if:
    • Timing of JobTask isn't stable enough
    • Frames were sent (ecatExecJob(eUsrJob_SendAllCycFrames)) too shortly before the start of the next cycle, because e.g. the application took too long to calculate the process data.
    • In this case a eRspErr_UNEXPECTED notification will follow a eRspErr_NO_RESPONSE notification, because in the next cycle frames from both cycles will be proceeded.

Last update on 2023-09-26 by EtherCAT Support Team.

FAQ2004: How is the FSoE black channel realized?

The communication between FSoE slaves is based on a "black channel". It is defined by CopyInfo entries in the ENI. EC-Master copies automatically data from the input process data image to the outpout process data image according the CopyInfo entries.

This is done on receive by default, but it can be done on send by calling EC_IOCTL_SET_COPYINFO_IN_SENDCYCFRAMES.

Last update on 2020-12-17 by EtherCAT Support Team.

FAQ2003: The process data (inputs and outputs) shall be stored in a buffer provided by the application. What can I achieve this?

The application may register a memory provider like shown in this code snippet.

Last update on 2020-12-17 by EtherCAT Support Team.

FAQ2002: What performance can I achieve using EC-Master?

Download some example EC-Master performance measurement results here.

Last update on 2024-01-24 by EtherCAT Support Team.

FAQ2001: Which network controllers are supported by the EC-Master?

Download a list of supported network controllers.

Last update on 2020-11-27 by EtherCAT Support Team.

FAQ2000: How shall I start working with EC-Master?

Take a look into the QuickStart guide.

Last update on 2020-12-17 by EtherCAT Support Team.

FAQ3012: I added a SCI file but cannot find it in append dialog

We do not show the SCI files in the append dialog on default. But there is a check box to show preconfigured slaves (SCI). If this checkbox is selected the SCI files are shown.

Last update on 2021-11-05 by EtherCAT Support Team.

FAQ3011: How can I create ENI files for slaves from the Beckhoff CX5000 series?

The ENI file of those slaves must start with an Ebus slave, but EC-Master exports only an MII port. This problem can be solved by first adding a helper slave “EK1200”. The “real” EBus slaves can be connected afterwords to this helper slave.

Last update on 2021-01-07 by EtherCAT Support Team.

FAQ3010: EC-Engineer reports the following message: Network scan successful - 0 slaves found.

  • Make sure you have connected the input and not the output port of your first slave to the computer
  • Do you have TwinCAT installed on this machine?
    • Open “Compatible Devices” in TwinCAT
    • Uninstall or disable the “TwinCAT RT-Ethernet Adapter” for your network adapter
    • If this doesn’t help, try to disable the “TwinCAT RT-Ethernet Driver” in the properties of your network adapter and reboot your system.
  • Run EC-Engineer with administrative rights? Does it help?
  • Do you have a some kind of security software (like firewall, antivirus, …) installed on this machine?
    • Try to turn it off and check if problem is solved
  • Do you have problems on sending or receiving pakets?
    • Install “Wireshark” and check which pakets are missing
  • Do you have only problems on sending packets?
  • Try it with Npcap instead of WinPcap. Make sure you chose “Install Npcap in WinPcap API-compatible Mode”

Last update on 2021-01-07 by EtherCAT Support Team.

FAQ3009: EC-Engineer reports the following message: Failed to query EtherCAT Slaves. No slaves found.

  • Verify that WinPcap / Npcap/ Ndis is correctly installed
  • Try to restart you operating system, because this is sometimes necessary if you e.g. using a USB network adapter
    Increase the message level (Menu → Settings → All Messages)
  • Turn on debug message of the master
    • Stop “EC-Engineer”
    • Set “MasterDebugMessageLevel” to “5” in “%ProgramData%\EC-Engineer\user.myusername.xml”
    • Start “EC-Engineer” again

Last update on 2021-01-07 by EtherCAT Support Team.

FAQ3008: Why is the process image size different between EC-Engineer and EC-Master?

EC-Engineer shows on tab “Process Data Image” not the real size of the process data image. It show only the offsets and the size of the variables.
If you want to get the real size of the process data image, which is used from EC-Master, you have to look into the ENI file: “EtherCATConfig/Config/ProcessImage/Inputs/ByteSize” or “EtherCATConfig/Config/ProcessImage/Outputs/ByteSize”. This is the offset + size of the last variable and additional administration data depending on the slaves which are used (ALStatus, DC Support, Mailbox, …).

Last update on 2021-01-07 by EtherCAT Support Team.

FAQ3007: How can I update the firmware of my slave via FoE?

For updating the firmware of your slave via FoE, please follow these steps:

  • Enable diagnosis mode
  • Set master state to INIT
  • Select your slave, and set his state machine to BOOTSTRAP
  • Enter path of file on slave (optional)
  • Enter password (optional)
  • Press button “Download” (it will open the FileOpen-Dialog, where you can choose the file which contains the new firmware and uploads this file)

Last update on 2021-01-07 by EtherCAT Support Team.

FAQ3006: How can I configure the modules of a BK1120 slave?

  • EC-Engineer supports only the MDP-Version of BK1120 slave. If you want to add this slave, enter “BK1120” into the search field, enable option “Show Hidden Slaves” and double-click on slave “BK1120 EtherCAT Fieldbus Coupler (MDP)” (Revision Number: 0x120001). The modules of this slave can be configured in tab “Modules” like in all other MDP slaves.
  • If you have one of the other versions of BK1120 and you want to use it, please contact our support.

Last update on 2021-01-07 by EtherCAT Support Team.

FAQ3005: Slave reports the error state: “Sync manager watchdog” (Diagnosis → Slave → General)

You need a realtime operating system. If you still want to use your slave on Windows, you can turn off this watchdog (Slave->Advanced Settings: Set PDI Watchdog = 0).

Last update on 2021-01-07 by EtherCAT Support Team.

FAQ3004: EC-Engineer reports the following message: Slave '…' has unexpected state (Current state: '…', Expected state: '…')

Select the slave and open the tab “General”. Here you can see the error state of the slave. If it has no error, try to change the state again.

Last update on 2020-12-18 by EtherCAT Support Team.

FAQ3003: EC-Engineer reports the following message: Changing topology failed: Bus configuration mismatch (ErrCode: 0x9811001E)

The configured bus and the currently connected bus does not match. Please open the 'Network Mismatch Analyzer' (Menu → Network → Network Mismatch Analyzer) to solve the problem.

Last update on 2021-01-07 by EtherCAT Support Team.

FAQ3002: EC-Engineer reports the following message: Not all EtherCAT slave devices are in operational state

Check if all slaves have a green icon. If the color is not green, open tab “Diagnosis → Slave → General”. Here you can see the error state of the slave. If it has no error, try to change the state to OP again.

Last update on 2021-01-07 by EtherCAT Support Team.

FAQ3001: EC-Engineer reports a message with ErrCode: 0x…

The Error Codes comes from the EC-Master. If you want to know how to solve this problem, please refer the manual of EC-Master.

Last update on 2021-01-07 by EtherCAT Support Team.

FAQ3000: The integrated EC-Master does not react as estimated

Increase the message level (Menu → Settings → All Messages) and try it again.

Last update on 2021-01-07 by EtherCAT Support Team.

FAQ3400: How can I add CoE objects that are not part of the generic dictionary?

To simulate CoE objects that are not part of the generic dictionary, the objects can be added to the EXI file.

The EC-Engineer provides declaration means within the CoE section at the Simulator tab of the Device Editor.

Last update on 2021-11-08 by EtherCAT Support Team.