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?
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?
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?
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:
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?
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:
- Get Kernel sources of your desired version. E.g.:
- Clone with git:
git clone -b v4.4.189 https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
- Download from kernel.org: https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/linux-4.4.189.tar.gz
- Clone with git:
- Unpack\clone the kernel into directory
/linux
- Unpack
/proc/config.gz
from target into/linux
directory:zcat config.gz > linux/.config
- Prepare kernel:
cd linux
make oldconfig
make prepare
make modules_prepare
cd ..
- Unpack atemsys source into directory
/atemsys
(besides/linux
) - 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?
- 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)
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.
- Timing of
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.