General typedefs and defines for EtherCAT. More...
#include <sys/time.h>
Go to the source code of this file.
General typedefs and defines for EtherCAT.
Defines that could need optimalisation for specific applications are the EC_TIMEOUTxxx. Assumptions for the standard settings are a standard linux PC or laptop and a wired connection to maximal 100 slaves. For use with wireless connections or lots of slaves the timouts need increasing. For fast systems running Xenomai and RT-net or alike the timeouts need to be shorter.
Definition in file ethercattype.h.
#define EC_BUFSIZE EC_MAXECATFRAME |
standard frame buffer size in bytes
Definition at line 93 of file ethercattype.h.
#define EC_CMDOFFSET EC_ELENGTHSIZE |
offset position of command in EtherCAT header
Definition at line 161 of file ethercattype.h.
#define EC_DATAGRAMFOLLOWS (1 << 15) |
definition of datagram follows bit in ec_comt.dlength
Definition at line 165 of file ethercattype.h.
#define EC_DEFAULTRETRIES 3 |
default number of retries if wkc <= 0
Definition at line 116 of file ethercattype.h.
#define EC_ECATTYPE 0x1000 |
datagram type EtherCAT
Definition at line 95 of file ethercattype.h.
#define EC_ELENGTHSIZE sizeof(uint16) |
size of ec_comt.elength item in EtherCAT header
Definition at line 159 of file ethercattype.h.
#define EC_ERROR -3 |
return value general error
Definition at line 79 of file ethercattype.h.
#define EC_ESTAT_BUSY 0x8000 |
EEprom state machine busy flag
Definition at line 279 of file ethercattype.h.
#define EC_ESTAT_EMASK 0x7800 |
EEprom state machine error flag mask
Definition at line 281 of file ethercattype.h.
#define EC_ESTAT_NACK 0x2000 |
EEprom state machine error acknowledge
Definition at line 283 of file ethercattype.h.
#define EC_ESTAT_R64 0x0040 |
EEprom state machine read size
Definition at line 277 of file ethercattype.h.
#define EC_FIRSTDCDATAGRAM 20 |
size of DC datagram used in first LRW frame
Definition at line 91 of file ethercattype.h.
#define EC_HEADERSIZE sizeof(ec_comt) |
EtherCAT header size
Definition at line 157 of file ethercattype.h.
#define EC_LITTLE_ENDIAN |
Define Little or Big endian target
Definition at line 57 of file ethercattype.h.
#define EC_MAXBUF 16 |
number of frame buffers per channel (tx, rx1 rx2)
Definition at line 97 of file ethercattype.h.
#define EC_MAXECATFRAME 1518 |
maximum EtherCAT frame length in bytes
Definition at line 85 of file ethercattype.h.
#define EC_MAXEEPBITMAP 128 |
size of EEPROM bitmap cache
Definition at line 112 of file ethercattype.h.
#define EC_MAXEEPBUF EC_MAXEEPBITMAP << 5 |
size of EEPROM cache buffer
Definition at line 114 of file ethercattype.h.
#define EC_MAXLRWDATA EC_MAXECATFRAME - 14 - 2 - 10 - 2 - 4 |
maximum EtherCAT LRW frame length in bytes
Definition at line 88 of file ethercattype.h.
#define EC_NOFRAME -1 |
return value no frame returned
Definition at line 81 of file ethercattype.h.
#define EC_OTHERFRAME -2 |
return value unknown frame received
Definition at line 83 of file ethercattype.h.
#define EC_TIMEOUTEEP 20000 |
timeout value in us for EEPROM access
Definition at line 104 of file ethercattype.h.
#define EC_TIMEOUTRET 500 |
timeout value in us for tx frame to return to rx
Definition at line 99 of file ethercattype.h.
#define EC_TIMEOUTRXM 700000 |
timeout value in us for rx mailbox cycle
Definition at line 108 of file ethercattype.h.
#define EC_TIMEOUTSAFE 20000 |
timeout value in us for return "safe" variant (f.e. wireless)
Definition at line 102 of file ethercattype.h.
#define EC_TIMEOUTSTATE 2000000 |
timeout value in us for check statechange
Definition at line 110 of file ethercattype.h.
#define EC_TIMEOUTTXM 20000 |
timeout value in us for tx mailbox cycle
Definition at line 106 of file ethercattype.h.
#define EC_WKCSIZE sizeof(uint16) |
size of workcounter item in EtherCAT datagram
Definition at line 163 of file ethercattype.h.
#define ECT_SDO_PDOASSIGN 0x1c10 |
standard SDO PDO assignment
Definition at line 387 of file ethercattype.h.
#define ECT_SDO_RXPDOASSIGN 0x1c12 |
standard SDO RxPDO assignment
Definition at line 389 of file ethercattype.h.
#define ECT_SDO_SMCOMMTYPE 0x1c00 |
standard SDO Sync Manager Communication Type
Definition at line 385 of file ethercattype.h.
#define ECT_SDO_TXPDOASSIGN 0x1c13 |
standard SDO TxPDO assignment
Definition at line 391 of file ethercattype.h.
#define ECT_SII_START 0x0040 |
Start address SII sections in Eeprom
Definition at line 288 of file ethercattype.h.
#define ETH_HEADERSIZE sizeof(ec_etherheadert) |
ethernet header size
Definition at line 134 of file ethercattype.h.
#define ETH_P_ECAT 0x88A4 |
Ethercat packet type
Definition at line 394 of file ethercattype.h.
#define etohl | ( | A | ) | (A) |
Definition at line 466 of file ethercattype.h.
#define etohll | ( | A | ) | (A) |
Definition at line 467 of file ethercattype.h.
#define etohs | ( | A | ) | (A) |
Definition at line 465 of file ethercattype.h.
#define FALSE 0 |
Definition at line 68 of file ethercattype.h.
#define get_unaligned | ( | ptr | ) | ({ __typeof__(*(ptr)) __tmp; memcpy(&__tmp, (ptr), sizeof(*(ptr))); __tmp; }) |
Definition at line 449 of file ethercattype.h.
#define HI_BYTE | ( | w | ) | ((w) >> 8) |
Macro to get hi byte of a word
Definition at line 439 of file ethercattype.h.
#define HI_WORD | ( | l | ) | ((l) >> 16) |
Macro to get hi word of a dword
Definition at line 447 of file ethercattype.h.
#define htoel | ( | A | ) | (A) |
Definition at line 463 of file ethercattype.h.
#define htoell | ( | A | ) | (A) |
Definition at line 464 of file ethercattype.h.
#define htoes | ( | A | ) | (A) |
Definition at line 462 of file ethercattype.h.
#define LO_BYTE | ( | w | ) | ((w) & 0x00ff) |
Macro to get low byte of a word
Definition at line 441 of file ethercattype.h.
#define LO_WORD | ( | l | ) | ((l) & 0xffff) |
Macro to get hi word of a dword
Definition at line 445 of file ethercattype.h.
Helper macros Macro to make a word from 2 bytes
Definition at line 437 of file ethercattype.h.
#define PACKED __attribute__((__packed__)) |
Definition at line 60 of file ethercattype.h.
#define put_unaligned32 | ( | val, | |
ptr | |||
) |
({ memcpy((ptr), &(val), 4); \ (void)0; })
Definition at line 452 of file ethercattype.h.
#define put_unaligned64 | ( | val, | |
ptr | |||
) |
({ memcpy((ptr), &(val), 8); \ (void)0; })
Definition at line 456 of file ethercattype.h.
#define SWAP | ( | w | ) | ((((w)& 0xff00) >> 8) | (((w) & 0x00ff) << 8)) |
Macro to swap hi and low byte of a word
Definition at line 443 of file ethercattype.h.
#define TRUE 1 |
Definition at line 67 of file ethercattype.h.
typedef unsigned char boolean |
Definition at line 66 of file ethercattype.h.
typedef uint8 ec_bufT[EC_BUFSIZE] |
definition for frame buffers
Definition at line 119 of file ethercattype.h.
typedef struct PACKED ec_etherheadert |
ethernet header definition
typedef signed short int16 |
Definition at line 70 of file ethercattype.h.
typedef signed int int32 |
Definition at line 71 of file ethercattype.h.
typedef signed long long int64 |
Definition at line 75 of file ethercattype.h.
typedef signed char int8 |
Definition at line 69 of file ethercattype.h.
typedef unsigned short uint16 |
Definition at line 73 of file ethercattype.h.
typedef unsigned int uint32 |
Definition at line 74 of file ethercattype.h.
typedef unsigned long long uint64 |
Definition at line 76 of file ethercattype.h.
typedef unsigned char uint8 |
Definition at line 72 of file ethercattype.h.
anonymous enum |
Ethercat registers
Definition at line 367 of file ethercattype.h.
anonymous enum |
ECT_SII_STRING |
SII category strings |
ECT_SII_GENERAL |
SII category general |
ECT_SII_FMMU |
SII category FMMU |
ECT_SII_SM |
SII category SM |
ECT_SII_PDO |
SII category PDO |
Definition at line 290 of file ethercattype.h.
anonymous enum |
Item offsets in SII general section
ECT_SII_MANUF | |
ECT_SII_ID | |
ECT_SII_REV | |
ECT_SII_BOOTRXMBX | |
ECT_SII_BOOTTXMBX | |
ECT_SII_MBXSIZE | |
ECT_SII_TXMBXADR | |
ECT_SII_RXMBXADR | |
ECT_SII_MBXPROTO |
Definition at line 305 of file ethercattype.h.
anonymous enum |
Mailbox types definitions
Definition at line 314 of file ethercattype.h.
anonymous enum |
CoE mailbox types
ECT_COES_EMERGENCY | |
ECT_COES_SDOREQ | |
ECT_COES_SDORES | |
ECT_COES_TXPDO | |
ECT_COES_RXPDO | |
ECT_COES_TXPDO_RR | |
ECT_COES_RXPDO_RR | |
ECT_COES_SDOINFO |
Definition at line 333 of file ethercattype.h.
anonymous enum |
CoE SDO commands
ECT_SDO_DOWN_INIT | |
ECT_SDO_DOWN_INIT_CA | |
ECT_SDO_UP_REQ | |
ECT_SDO_UP_REQ_CA | |
ECT_SDO_SEG_UP_REQ | |
ECT_SDO_ABORT |
Definition at line 340 of file ethercattype.h.
anonymous enum |
CoE Object Description commands
ECT_GET_ODLIST_REQ | |
ECT_GET_ODLIST_RES | |
ECT_GET_OD_REQ | |
ECT_GET_OD_RES | |
ECT_GET_OE_REQ | |
ECT_GET_OE_RES | |
ECT_SDOINFO_ERROR |
Definition at line 347 of file ethercattype.h.
anonymous enum |
FoE opcodes
Definition at line 354 of file ethercattype.h.
anonymous enum |
SoE opcodes
ECT_SOE_READREQ | |
ECT_SOE_READRES | |
ECT_SOE_WRITEREQ | |
ECT_SOE_WRITERES | |
ECT_SOE_NOTIFICATION | |
ECT_SOE_EMERGENCY |
Definition at line 360 of file ethercattype.h.
enum ec_bufstate |
Possible buffer states
EC_BUF_EMPTY |
Empty |
EC_BUF_ALLOC |
Allocated, but not filled |
EC_BUF_TX |
Transmitted |
EC_BUF_RCVD |
Received, but not consumed |
EC_BUF_COMPLETE |
Cycle completed |
Definition at line 202 of file ethercattype.h.
enum ec_cmdtype |
Ethercat command types
Definition at line 228 of file ethercattype.h.
enum ec_datatype |
Ethercat data types
Definition at line 217 of file ethercattype.h.
enum ec_ecmdtype |
Ethercat EEprom command types
Definition at line 264 of file ethercattype.h.
enum ec_err |
Possible error codes returned.
Definition at line 168 of file ethercattype.h.
enum ec_err_type |
Error types
EC_ERR_TYPE_SDO_ERROR | |
EC_ERR_TYPE_EMERGENCY | |
EC_ERR_TYPE_PACKET_ERROR | |
EC_ERR_TYPE_SDOINFO_ERROR | |
EC_ERR_TYPE_FOE_ERROR | |
EC_ERR_TYPE_FOE_BUF2SMALL | |
EC_ERR_TYPE_FOE_PACKETNUMBER | |
EC_ERR_TYPE_SOE_ERROR |
Definition at line 397 of file ethercattype.h.
enum ec_state |
Possible EtherCAT slave states
EC_STATE_INIT |
Init state |
EC_STATE_PRE_OP |
Pre-operational. |
EC_STATE_BOOT |
Boot state |
EC_STATE_SAFE_OP |
Safe-operational. |
EC_STATE_OPERATIONAL |
Operational |
EC_STATE_ACK |
Error or ACK error |
EC_STATE_ERROR |
Definition at line 185 of file ethercattype.h.