EC-Master - EtherCAT® Master Stack für EtherCAT Device Protocol

Manuals

EC-Master / EC-STA

Version Description HTML PDF
3.2 EC-Master Quickstart Guide - PDF
EC-Master Class B User Manual HTML PDF
EC-Master Class A Add-On User Manual HTML PDF
EC-Master Python Programming Interface HTML PDF
EC-Master Real-time Ethernet Drivers HTML -
EC-Master Release Notes - PDF
3.1 EC-Master Quickstart Guide - PDF
EC-Master Class B User Manual HTML PDF
EC-Master Class A Add-On User Manual HTML PDF
EC-Master Python Programming Interface HTML PDF
EC-Master Real-time Ethernet Drivers HTML -
EC-Master Release Notes - PDF
3.0 EC-Master Quickstart Guide - PDF
EC-Master Class B User Manual - PDF
EC-Master Class A Add-On User Manual - PDF
3.x EC-Master Supported Operating Systems HTML -
Linux Kernel Module Atemsys - Wiki HTML -
EC-Master Runtime Licensing User Manual - PDF

Tutorials

EC-Master Tutorial: Getting Started with EC-Master On Windows

In this video, we guide you through the process of setting up an EtherCAT Master in Windows using acontis' EC-Master software.

EC-Master Tutorial: Getting Started with EC-Master On Linux

In this video, we guide you through the process of setting up an EtherCAT Master in Linux using acontis' EC-Master software.

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.

E-Mail Support

EtherCAT products: ecsupport@acontis.com
Japanese support: jpsupport@acontis.com