|
libethercat - an embeddable realtime EtherCAT-master library
Communicate with EtherCAT slaves attached to a Network interface.
|
ethercat master functions. More...
#include <libosal/types.h>#include "libethercat/common.h"#include "libethercat/dc.h"#include "libethercat/slave.h"#include "libethercat/hw.h"#include "libethercat/regs.h"#include "libethercat/idx.h"#include "libethercat/datagram.h"#include "libethercat/pool.h"#include "libethercat/async_loop.h"#include "libethercat/eeprom.h"Go to the source code of this file.
Data Structures | |
| struct | ec_pd_group |
| process data group structure More... | |
| struct | ec_statistics |
| struct | ec |
| ethercat master structure More... | |
Macros | |
| #define | EC_SHORT_TIMEOUT_MBX (10000000) |
| Short timeout value in [ns]. | |
| #define | EC_DEFAULT_TIMEOUT_MBX (1000000000) |
| Default timeout value in [ns]. | |
| #define | EC_DEFAULT_DELAY (2000000) |
| Default delay in [ns]. | |
| #define | ec_log(lvl, pre, format, ...) _ec_log(pec, (lvl), (pre), (format), ##__VA_ARGS__) |
| #define | ec_group_will_be_sent(pec, group) (int)((((pec)->pd_groups[(group)].divisor_cnt+1) % (pec)->pd_groups[(group)].divisor) == 0) |
| Group datagram will be send on next time step. | |
| #define | ec_group_was_sent(pec, group) (int)((pec)->pd_groups[(group)].divisor_cnt == 0) |
| Group datagram was sent. | |
| #define | ec_to_adr(ado, adp) ((osal_uint32_t)(adp) << 16u) | ((ado) & 0xFFFFu) |
| Macro for EtherCAT address generation. | |
| #define | ec_brd(pec, ado, data, datalen, wkc) |
| Perform a broadcast read (BRD). | |
| #define | ec_bwr(pec, ado, data, datalen, wkc) |
| Perform a broadcast write (BWR). | |
| #define | ec_brw(pec, ado, data, datalen, wkc) |
| Perform a broadcast read/write (BRW). | |
| #define | ec_aprd(pec, adp, ado, data, datalen, wkc) |
| Perform a positional physical read (APRD) | |
| #define | ec_apwr(pec, adp, ado, data, datalen, wkc) |
| Perform a positional physical write (APWR) | |
| #define | ec_aprw(pec, adp, ado, data, datalen, wkc) |
| Perform a positional physical read/write (APRW) | |
| #define | ec_fprd(pec, adp, ado, data, datalen, wkc) |
| Perform a configured-address physical read (FPRD) | |
| #define | ec_fpwr(pec, adp, ado, data, datalen, wkc) |
| Perform a configured-address physical write (FPWR) | |
| #define | ec_fprw(pec, adp, ado, data, datalen, wkc) |
| Perform a configured-address physical read/write (FPRW) | |
| #define | ec_frmw(pec, adp, ado, data, datalen, wkc) |
| Perform a configured-address physical read/multiple-write (FPMW) | |
| #define | check_ret(fcn, ...) |
| Macro that checks return value and prints message in error case. | |
| #define | check_ec_bwr(...) check_ret(ec_bwr, __VA_ARGS__) |
| Macro that checks return value and prints message in error case. | |
| #define | check_ec_brd(...) check_ret(ec_brd, __VA_ARGS__) |
| Macro that checks return value and prints message in error case. | |
| #define | check_ec_brw(...) check_ret(ec_brw, __VA_ARGS__) |
| Macro that checks return value and prints message in error case. | |
| #define | check_ec_apwr(...) check_ret(ec_apwr, __VA_ARGS__) |
| Macro that checks return value and prints message in error case. | |
| #define | check_ec_aprd(...) check_ret(ec_aprd, __VA_ARGS__) |
| Macro that checks return value and prints message in error case. | |
| #define | check_ec_aprw(...) check_ret(ec_aprw, __VA_ARGS__) |
| Macro that checks return value and prints message in error case. | |
| #define | check_ec_fpwr(...) check_ret(ec_fpwr, __VA_ARGS__) |
| Macro that checks return value and prints message in error case. | |
| #define | check_ec_fprd(...) check_ret(ec_fprd, __VA_ARGS__) |
| Macro that checks return value and prints message in error case. | |
| #define | check_ec_fprw(...) check_ret(ec_fprw, __VA_ARGS__) |
| Macro that checks return value and prints message in error case. | |
| #define | check_ec_frmw(...) check_ret(ec_frmw, __VA_ARGS__) |
| Macro that checks return value and prints message in error case. | |
Typedefs | |
| typedef struct ec_slave | ec_slave_t |
| typedef struct ec_pd_group | ec_pd_group_t |
| process data group structure | |
| typedef struct ec_statistics | ec_statistics_t |
| typedef struct ec | ec_t |
| ethercat master structure | |
Functions | |
| void | _ec_log (ec_t *pec, int lvl, const osal_char_t *pre, const osal_char_t *format,...) |
| EtherCAT logging function. | |
| int | ec_open (ec_t *pec, struct hw_common *phw, int eeprom_log) |
| Open ethercat master. | |
| int | ec_close (ec_t *pec) |
| Closes ethercat master. | |
| int | ec_configure_tun (ec_t *pec, osal_uint8_t ip_address[4]) |
| Configures tun device of EtherCAT master, used for EoE slaves. | |
| void | ec_configure_dc (ec_t *pec, osal_uint64_t timer, ec_dc_mode_t mode, void(*user_cb)(void *arg, int num), void *user_cb_arg) |
| Configures distributed clocks settings on EtherCAT master. | |
| int | ec_create_pd_groups (ec_t *pec, osal_uint32_t pd_group_cnt) |
| Create process data groups. | |
| void | ec_configure_pd_group (ec_t *pec, osal_uint16_t group, int clock_divisor, void(*user_cb)(void *arg, int num), void *user_cb_arg) |
| Configure process data group settings. | |
| int | ec_destroy_pd_groups (ec_t *pec) |
| Destroy process data groups. | |
| int | ec_transceive (ec_t *pec, osal_uint8_t cmd, osal_uint32_t adr, osal_uint8_t *data, osal_size_t datalen, osal_uint16_t *wkc) |
| Syncronous ethercat read/write. | |
| int | ec_set_state (ec_t *pec, ec_state_t state) |
| Set state on ethercat bus. | |
| int | ec_send_process_data (ec_t *pec) |
| send process data with logical commands | |
| int | ec_send_distributed_clocks_sync (ec_t *pec) |
| Send distributed clocks sync datagram. | |
| int | ec_send_distributed_clocks_sync_with_rtc (ec_t *pec, osal_uint64_t act_rtc_time) |
| Send distributed clock sync datagram. | |
| int | ec_send_brd_ec_state (ec_t *pec) |
| Send broadcast read to ec state. | |
| int | ec_get_slave_count (ec_t *pec) |
| Return current slave count. | |
ethercat master functions.
These are EtherCAT master specific configuration functions.