ethercatbase.h File Reference

Headerfile for ethercatbase.c. More...

Functions

int ec_setupdatagram (void *frame, uint8 com, uint8 idx, uint16 ADP, uint16 ADO, uint16 length, void *data)
int ec_adddatagram (void *frame, uint8 com, uint8 idx, boolean more, uint16 ADP, uint16 ADO, uint16 length, void *data)
int ec_BWR (uint16 ADP, uint16 ADO, uint16 length, void *data, int timeout)
int ec_BRD (uint16 ADP, uint16 ADO, uint16 length, void *data, int timeout)
int ec_APRD (uint16 ADP, uint16 ADO, uint16 length, void *data, int timeout)
int ec_ARMW (uint16 ADP, uint16 ADO, uint16 length, void *data, int timeout)
int ec_FRMW (uint16 ADP, uint16 ADO, uint16 length, void *data, int timeout)
uint16 ec_APRDw (uint16 ADP, uint16 ADO, int timeout)
int ec_FPRD (uint16 ADP, uint16 ADO, uint16 length, void *data, int timeout)
uint16 ec_FPRDw (uint16 ADP, uint16 ADO, int16 timeout)
void ec_APWRw (uint16 ADP, uint16 ADO, uint16 data, int timeout)
int ec_APWR (uint16 ADP, uint16 ADO, uint16 length, void *data, int timeout)
void ec_FPWRw (uint16 ADP, uint16 ADO, uint16 data, int timeout)
int ec_FPWR (uint16 ADP, uint16 ADO, uint16 length, void *data, int timeout)
int ec_LRW (uint32 LogAdr, uint16 length, void *data, int timeout)
int ec_LRD (uint32 LogAdr, uint16 length, void *data, int timeout)
int ec_LWR (uint32 LogAdr, uint16 length, void *data, int timeout)
int ec_LRWDC (uint32 LogAdr, uint16 length, void *data, uint16 DCrs, int64 *DCtime, int timeout)

Detailed Description

Headerfile for ethercatbase.c.


Function Documentation

int ec_adddatagram ( void *  frame,
uint8  com,
uint8  idx,
boolean  more,
uint16  ADP,
uint16  ADO,
uint16  length,
void *  data 
)

Add EtherCAT datagram to a standard ethernet frame with existing datagram(s).

Parameters:
[out] frame = framebuffer
[in] com = command
[in] idx = index used for TX and RX buffers
[in] more = TRUE if still more datagrams to follow
[in] ADP = Address Position
[in] ADO = Address Offset
[in] length = length of datagram excluding EtherCAT header
[in] data = databuffer to be copied in datagram
Returns:
Offset to data in rx frame, usefull to retrieve data after RX.
int ec_APRD ( uint16  ADP,
uint16  ADO,
uint16  length,
void *  data,
int  timeout 
)

APRD "auto increment address read" primitive. Blocking.

Parameters:
[in] ADP = Address Position, each slave ++, slave that has 0 excecutes
[in] ADO = Address Offset, slave memory address
[in] length = length of databuffer
[out] data = databuffer to put slave data in
[in] timeout = timeout in us, standard is EC_TIMEOUTRET
Returns:
Workcounter or EC_NOFRAME
uint16 ec_APRDw ( uint16  ADP,
uint16  ADO,
int  timeout 
)

APRDw "auto increment address read" word return primitive. Blocking.

Parameters:
[in] ADP = Address Position, each slave ++, slave that has 0 reads.
[in] ADO = Address Offset, slave memory address
[in] timeout = timeout in us, standard is EC_TIMEOUTRET
Returns:
word data from slave
int ec_APWR ( uint16  ADP,
uint16  ADO,
uint16  length,
void *  data,
int  timeout 
)

APWR "auto increment address write" primitive. Blocking.

Parameters:
[in] ADP = Address Position, each slave ++, slave that has 0 writes.
[in] ADO = Address Offset, slave memory address
[in] length = length of databuffer
[in] data = databuffer to write to slave.
[in] timeout = timeout in us, standard is EC_TIMEOUTRET
Returns:
Workcounter or EC_NOFRAME
void ec_APWRw ( uint16  ADP,
uint16  ADO,
uint16  data,
int  timeout 
)

APWRw "auto increment address write" word primitive. Blocking.

Parameters:
[in] ADP = Address Position, each slave ++, slave that has 0 writes.
[in] ADO = Address Offset, slave memory address
[in] data = word data to write to slave.
[in] timeout = timeout in us, standard is EC_TIMEOUTRET
int ec_ARMW ( uint16  ADP,
uint16  ADO,
uint16  length,
void *  data,
int  timeout 
)

APRMW "auto increment address read, multiple write" primitive. Blocking.

Parameters:
[in] ADP = Address Position, each slave ++, slave that has 0 reads, following slaves write.
[in] ADO = Address Offset, slave memory address
[in] length = length of databuffer
[out] data = databuffer to put slave data in
[in] timeout = timeout in us, standard is EC_TIMEOUTRET
Returns:
Workcounter or EC_NOFRAME
int ec_BRD ( uint16  ADP,
uint16  ADO,
uint16  length,
void *  data,
int  timeout 
)

BRD "broadcast read" primitive. Blocking.

Parameters:
[in] ADP = Address Position, normally 0
[in] ADO = Address Offset, slave memory address
[in] length = length of databuffer
[out] data = databuffer to put slave data in
[in] timeout = timeout in us, standard is EC_TIMEOUTRET
Returns:
Workcounter or EC_NOFRAME
int ec_BWR ( uint16  ADP,
uint16  ADO,
uint16  length,
void *  data,
int  timeout 
)

BRW "broadcast write" primitive. Blocking.

Parameters:
[in] ADP = Address Position, normally 0
[in] ADO = Address Offset, slave memory address
[in] length = length of databuffer
[in] data = databuffer to be written to slaves
[in] timeout = timeout in us, standard is EC_TIMEOUTRET
Returns:
Workcounter or EC_NOFRAME
int ec_FPRD ( uint16  ADP,
uint16  ADO,
uint16  length,
void *  data,
int  timeout 
)

FPRD "configured address read" primitive. Blocking.

Parameters:
[in] ADP = Address Position, slave that has address reads.
[in] ADO = Address Offset, slave memory address
[in] length = length of databuffer
[out] data = databuffer to put slave data in
[in] timeout = timeout in us, standard is EC_TIMEOUTRET
Returns:
Workcounter or EC_NOFRAME
uint16 ec_FPRDw ( uint16  ADP,
uint16  ADO,
int16  timeout 
)

FPRDw "configured address read" word return primitive. Blocking.

Parameters:
[in] ADP = Address Position, slave that has address reads.
[in] ADO = Address Offset, slave memory address
[in] timeout = timeout in us, standard is EC_TIMEOUTRET
Returns:
word data from slave
int ec_FPWR ( uint16  ADP,
uint16  ADO,
uint16  length,
void *  data,
int  timeout 
)

FPWR "configured address write" primitive. Blocking.

Parameters:
[in] ADP = Address Position, slave that has address writes.
[in] ADO = Address Offset, slave memory address
[in] length = length of databuffer
[in] data = databuffer to write to slave.
[in] timeout = timeout in us, standard is EC_TIMEOUTRET
Returns:
Workcounter or EC_NOFRAME
void ec_FPWRw ( uint16  ADP,
uint16  ADO,
uint16  data,
int  timeout 
)

FPWR "configured address write" primitive. Blocking.

Parameters:
[in] ADP = Address Position, slave that has address writes.
[in] ADO = Address Offset, slave memory address
[in] data = word to write to slave.
[in] timeout = timeout in us, standard is EC_TIMEOUTRET
int ec_FRMW ( uint16  ADP,
uint16  ADO,
uint16  length,
void *  data,
int  timeout 
)

FPRMW "configured address read, multiple write" primitive. Blocking.

Parameters:
[in] ADP = Address Position, slave that has address reads, following slaves write.
[in] ADO = Address Offset, slave memory address
[in] length = length of databuffer
[out] data = databuffer to put slave data in
[in] timeout = timeout in us, standard is EC_TIMEOUTRET
Returns:
Workcounter or EC_NOFRAME
int ec_LRD ( uint32  LogAdr,
uint16  length,
void *  data,
int  timeout 
)

LRD "logical memory read" primitive. Blocking.

Parameters:
[in] LogAdr = Logical memory address
[in] length = length of bytes to read from slave.
[out] data = databuffer to read from slave.
[in] timeout = timeout in us, standard is EC_TIMEOUTRET
Returns:
Workcounter or EC_NOFRAME
int ec_LRW ( uint32  LogAdr,
uint16  length,
void *  data,
int  timeout 
)

LRW "logical memory read / write" primitive. Blocking.

Parameters:
[in] LogAdr = Logical memory address
[in] length = length of databuffer
[in,out] data = databuffer to write to and read from slave.
[in] timeout = timeout in us, standard is EC_TIMEOUTRET
Returns:
Workcounter or EC_NOFRAME
int ec_LRWDC ( uint32  LogAdr,
uint16  length,
void *  data,
uint16  DCrs,
int64 DCtime,
int  timeout 
)

LRW "logical memory read / write" primitive plus Clock Distribution. Blocking. Frame consists of two datagrams, one LRW and one FPRMW.

Parameters:
[in] LogAdr = Logical memory address
[in] length = length of databuffer
[in,out] data = databuffer to write to and read from slave.
[in] DCrs = Distributed Clock reference slave address.
[out] DCtime = DC time read from reference slave.
[in] timeout = timeout in us, standard is EC_TIMEOUTRET
Returns:
Workcounter or EC_NOFRAME
int ec_LWR ( uint32  LogAdr,
uint16  length,
void *  data,
int  timeout 
)

LWR "logical memory write" primitive. Blocking.

Parameters:
[in] LogAdr = Logical memory address
[in] length = length of databuffer
[in] data = databuffer to write to slave.
[in] timeout = timeout in us, standard is EC_TIMEOUTRET
Returns:
Workcounter or EC_NOFRAME
int ec_setupdatagram ( void *  frame,
uint8  com,
uint8  idx,
uint16  ADP,
uint16  ADO,
uint16  length,
void *  data 
)

Generate and set EtherCAT datagram in a standard ethernet frame.

Parameters:
[out] frame = framebuffer
[in] com = command
[in] idx = index used for TX and RX buffers
[in] ADP = Address Position
[in] ADO = Address Offset
[in] length = length of datagram excluding EtherCAT header
[in] data = databuffer to be copied in datagram
Returns:
always 0

Generated on Mon Feb 22 22:00:22 2010 for SOEM by  doxygen 1.6.1