Difference between revisions of "Category:EtherCAT:ECAT GENERAL GUIDE"
Line 72: | Line 72: | ||
The ECat slave must have these four objects mapped to PDOs in order to allow motion.<br/> | The ECat slave must have these four objects mapped to PDOs in order to allow motion.<br/> | ||
− | These PDOs are Motion Critical therefore they are handled by the softMC's motion task. The user doesn't read or write them explicitly, however, other PDOs that aren't Motion Critical can be read/written by the user, for example, reading Digital Inputs | + | These PDOs are Motion Critical therefore they are handled by the softMC's motion task. The user doesn't read or write them explicitly, however, other PDOs that aren't Motion Critical can be read/written by the user, for example, reading Digital Inputs via PDO 0x60FD:0x0 or writing Digital Outputs via PDO 0x60FE:0x1. Refer to [[EtherCAT:DIGITAL-IOS|DIGITAL-IOS]] for mor information about digital I/Os |
==EtherCAT configuration and initiation with softMC== | ==EtherCAT configuration and initiation with softMC== | ||
Line 139: | Line 139: | ||
==See Also== | ==See Also== | ||
* [[:Category:EtherCAT:EC SETUP|Setup EtherCAT]] - How to setup EtherCAT | * [[:Category:EtherCAT:EC SETUP|Setup EtherCAT]] - How to setup EtherCAT | ||
− | + | * [[EtherCAT:DIGITAL-IOS|DIGITAL-IOS]] | |
Revision as of 11:05, 6 January 2015
Category:EtherCAT:ECAT GENERAL GUIDE EtherCAT - General Guide
The front page is EtherCAT
Contents
Introduction
From Wikipedia:
"EtherCAT - Ethernet for Control Automation Technology - is an Ethernet-based fieldbus system, invented by Beckhoff Automation. The protocol is standardized in IEC 61158 and is suitable for both hard and soft real-time requirements in automation technology.
The goal during development of EtherCAT was to apply Ethernet for automation applications requiring short data update times (also called cycle times; ≤ 100 µs) with low communication jitter (for precise synchronization purposes; ≤ 1 µs) and reduced hardware costs."
http://en.wikipedia.org/wiki/EtherCAT
softMC's current main fieldbus is EtherCAT and this guide will help you to better understand and setup the system.
A part of softMC is a software entity called "EtherCAT Master". The ECat master is a part of the Linux kernel and it works in parallel to the Real-Time Motion task of the softMC.
Connecting the softMC to ECat slaves isn't enough to create motion. A few actions must be carried out in order to setup the real-time communication that allows motion.
The entire EtherCAT configuration and setup process is performed by EC_SETUP.PRG.
EtherCAT slaves and EtherCAT modes
IMPORTANT | |
EtherCAT modes are NOT motion operation modes (Position, Velocity, etc...) |
Communication with an ECat slave can be done via SDO or via PDO. When a slave is powered up it automatically gets into ECat mode "INIT". If the slave senses that an ECat master is connected to the physical topology it automatically gets into ECat mode "PREOP". In this mode the ECat master can communicate with the slave, query some basic data that will later be used to setup the real-time communication, and allow the user to communicate with the slave via SDO. SDO communication isn't real-time. It is useful to gather data and configure the slave before starting the real-time communication. To use SDO communication please refer to:
From the ControlStudio's terminal the user can learn about the state of the ECat master and what slaves are found by the ECat master on the physical topology:
Usually an ECat slave has many SDO objects that can be read or written.
When the real-time communication is initiated the ECat master asks the slaves to rise to Ethercat mode "SAFEOP". In this mode the clocks of the slaves
and the master are synchronized. This process may take up to a 30 seconds and it depends on the number of slaves in the topology. Once the clocks are synchronized the ECat master asks the slaves to change mode to "OP" and real-time communication is established.
We call this process "Start Master".
Real-Time Communication and PDOs
Once the ECat master is started, the clocks are in sync and all the slaves are in "OP" mode, data is flowing back and forth between the ECat master and the slaves. A round trip is completed within a deterministic cycle time that is chosen by the user. At the moment softMC supports cycle times of: 4000us, 2000us, 1000us, 500us, 250us. Please refer to:
A limited amount of data can be exchanged each cycle between the ECat master and slaves. This data is mapped to "PDOs". Each slave has a fixed and limited list of objects that are mapped to PDOs. Some PDOs are transmitted from the slave to the master (Tx PDOs) and some are read from the master by the slave (Rx PDOs).
From the Linux terminal it is possible to list the available PDOs in each slave. Do the following:
1. Connect to the softMC using ssh or serial console.
2. In the Linux terminal type:
-bash-3.2$ ethercat pdos .... ....
Creating Motion
Most ECat slaves are motion drives. In order to create real-time communication that allows motion only a few objects are required. CANopen DS 402 standard defines their addresses:
From ECat master to slave:
Control word - 0x6040:0x0
Position command - 0x607a:0x0
From slave to ECat master:
Status word - 0x6041:0x0
Position feedback - 0x6064:0x0
The ECat slave must have these four objects mapped to PDOs in order to allow motion.
These PDOs are Motion Critical therefore they are handled by the softMC's motion task. The user doesn't read or write them explicitly, however, other PDOs that aren't Motion Critical can be read/written by the user, for example, reading Digital Inputs via PDO 0x60FD:0x0 or writing Digital Outputs via PDO 0x60FE:0x1. Refer to DIGITAL-IOS for mor information about digital I/Os
EtherCAT configuration and initiation with softMC
Global Libraries
A few libraries must be globally loaded in softMC in order to work with the ECat master.
The first and most vast is ETHERCAT.LIB. This library holds all the interfaces to the firmware, including ECat master commands, configuration and monitoring.
Next libraries are more device specific. EC_CDHD.LIB is a library that holds specific data about the STX CDHD drive, and it allows high resolution configuration and handling of the device. There are a few more device specific libraries and over time this list will expand.
"One Ring To Rule Them All" - The script EC_SETUP.PRG
This script allows automatic configuration and initiation of the ECat slaves and ECat master.
It iterates over the slaves identifying each slave and configuring it according to the specific data that is found in the slave's corresponding library. The ECat master must know exactly about each slave and its PDOs in order to manage the real-time communication. The script extracts data from each slave about its mapped PDOs. A data base about the entire ethercat topology is built and sent to the ECat master and the master is "started".
Once there's PDO communication between the ECat master and slaves, we can start creating motion.
To use PDO communication please refer to:
Getting Started
The EtherCAT software libraries are globally loaded by CONFIG.PRG and the setting up sequence is launched automatically by AUTOEXEC.PRG.
AUTOEXEC.PRG loads and starts EC_SETUP.PRG and waits for its termination. Once EC_SETUP.PRG is terminated AUTOEXEC.PRG launches AX_SETUP.PRG to setup all the axes parameters (Not related to EtherCAT).
So, to conclude, you need the following files to start up EtherCAT:
CONFIG.PRG
AUTOEXEC.PRG
EC_SETUP.PRG
AX_SETUP.PRG
ETHERCAT.LIB
EC_CDHD.LIB
ECX_DIO8.LIB
EC_AI8ME.LIB
CPX_FB38.LIB
EC_HCNC.LIB
EC_USER.LIB
Send all the above files to softMC, and to start the sequence type in the ControlStudio's terminal "reset all" followed by "load AUTOEXEC.PRG".
Downloads
All downloads correspond to softMC's formal release version ECAT 0.4.13.2rc2
EtherCAT libraries -
Contents:
ETHERCAT.LIB
EC_CDHD.LIB
ECX_DIO8.LIB
EC_AI8ME.LIB
CPX_FB38.LIB
EC_HCNC.LIB
EC_USER.LIB
File:ecat libs.zip
EtherCAT programs -
Contents:
CONFIG.PRG
AUTOEXEC.PRG
EC_SETUP.PRG
AX_SETUP.PRG
File:ecat prgs.zip
See Also
- Setup EtherCAT - How to setup EtherCAT
- DIGITAL-IOS
This category currently contains no pages or media.