|
libethercat - an embeddable realtime EtherCAT-master library
Communicate with EtherCAT slaves attached to a Network interface.
|
EtherCAT slave functions. More...
#include <libosal/types.h>#include <assert.h>#include "libethercat/common.h"#include "libethercat/eeprom.h"#include "libethercat/dc.h"#include "libethercat/mbx.h"Go to the source code of this file.
Data Structures | |
| struct | ec_slave_sm |
| slave sync manager settings More... | |
| struct | ec_slave_fmmu |
| slave fielbus memory management unit (fmmu) settings More... | |
| struct | ec_slave_subdev |
| EtherCAT sub device. More... | |
| struct | ec_init_cmd |
| slave mailbox init commands More... | |
| struct | worker_arg |
| struct | ec_slave |
Macros | |
| #define | BOOT_2_BOOT 0x0303u |
| EtherCAT slave state transitions. | |
| #define | BOOT_2_INIT 0x0301u |
| BOOT to INIT state transition. | |
| #define | BOOT_2_PREOP 0x0302u |
| BOOT to PREOP state transition,. | |
| #define | BOOT_2_SAFEOP 0x0304u |
| BOOT to SAFEOP state transition,. | |
| #define | BOOT_2_OP 0x0308u |
| BOOT to OP state transition,. | |
| #define | UNKNOWN_2_BOOT 0x0003u |
| UNKNOWN to BOOT state transition. | |
| #define | UNKNOWN_2_INIT 0x0001u |
| UNKNOWN to INIT state transition,. | |
| #define | UNKNOWN_2_PREOP 0x0002u |
| UNKNOWN to PREOP state transition,. | |
| #define | UNKNOWN_2_SAFEOP 0x0004u |
| UNKNOWN to SAFEOP state transition,. | |
| #define | UNKNOWN_2_OP 0x0008u |
| UNKNOWN to OP state transition,. | |
| #define | INIT_2_BOOT 0x0103u |
| INIT to BOOT state transition. | |
| #define | INIT_2_INIT 0x0101u |
| INIT to INIT state transition,. | |
| #define | INIT_2_PREOP 0x0102u |
| INIT to PREOP state transition,. | |
| #define | INIT_2_SAFEOP 0x0104u |
| INIT to SAFEOP state transition,. | |
| #define | INIT_2_OP 0x0108u |
| INIT to OP state transition,. | |
| #define | PREOP_2_BOOT 0x0203u |
| PREOP to BOOT state transition,. | |
| #define | PREOP_2_INIT 0x0201u |
| PREOP to INIT state transition,. | |
| #define | PREOP_2_PREOP 0x0202u |
| PREOP to PREOP state transition,. | |
| #define | PREOP_2_SAFEOP 0x0204u |
| PREOP to SAFEOP state transition,. | |
| #define | PREOP_2_OP 0x0208u |
| PREOP to OP state transition,. | |
| #define | SAFEOP_2_BOOT 0x0403u |
| SAFEOP to BOOT state transition,. | |
| #define | SAFEOP_2_INIT 0x0401u |
| SAFEOP to INIT state transition,. | |
| #define | SAFEOP_2_PREOP 0x0402u |
| SAFEOP to PREOP state transition,. | |
| #define | SAFEOP_2_SAFEOP 0x0404u |
| SAFEOP to SAFEOP state transition,. | |
| #define | SAFEOP_2_OP 0x0408u |
| SAFEOP to OP state transition,. | |
| #define | OP_2_BOOT 0x0803u |
| OP to BOOT state transition,. | |
| #define | OP_2_INIT 0x0801u |
| OP to INIT state transition,. | |
| #define | OP_2_PREOP 0x0802u |
| OP to PREOP state transition,. | |
| #define | OP_2_SAFEOP 0x0804u |
| OP to SAFEOP state transition,. | |
| #define | OP_2_OP 0x0808u |
| OP to OP state transition,. | |
| #define | INIT_CMD_SIZE (sizeof(ec_init_cmd_t)) |
| #define | ec_slave_ptr(ptr, pec, slave) |
Typedefs | |
| typedef osal_uint16_t | ec_state_transition_t |
| typedef struct PACKED ec_slave_sm | ec_slave_sm_t |
| slave sync manager settings | |
| typedef struct PACKED ec_slave_fmmu | ec_slave_fmmu_t |
| slave fielbus memory management unit (fmmu) settings | |
| typedef struct ec_slave_subdev | ec_slave_subdev_t |
| EtherCAT sub device. | |
| typedef struct ec_init_cmd | ec_init_cmd_t |
| slave mailbox init commands | |
| typedef struct worker_arg | worker_arg_t |
| Worker thread argument structure. | |
| typedef struct ec_slave | ec_slave_t |
Functions | |
| LIST_HEAD (ec_init_cmds, ec_init_cmd) | |
| void | ec_slave_init (struct ec *pec, osal_uint16_t slave) |
| void | ec_slave_free (struct ec *pec, osal_uint16_t slave) |
| void | ec_slave_reset (ec_t *pec, osal_uint16_t slave) |
| issue hardware reset of slave | |
| int | ec_slave_set_state (struct ec *pec, osal_uint16_t slave, ec_state_t state) |
| Set EtherCAT state on slave. | |
| int | ec_slave_get_state (struct ec *pec, osal_uint16_t slave, ec_state_t *state, osal_uint16_t *alstatcode) |
| Get EtherCAT state from slave. | |
| int | ec_slave_generate_mapping (struct ec *pec, osal_uint16_t slave) |
| Generate process data mapping. | |
| int | ec_slave_prepare_state_transition (struct ec *pec, osal_uint16_t slave, ec_state_t state) |
| Prepare state transition on EtherCAT slave. | |
| int | ec_slave_state_transition (struct ec *pec, osal_uint16_t slave, ec_state_t state) |
| Execute state transition on EtherCAT slave. | |
| void | ec_slave_mailbox_coe_init_cmd_init (ec_init_cmd_t *cmd, int transition, int id, int si_el, int ca_atn, osal_char_t *data, osal_size_t datalen) |
| Initialize CoE init command. | |
| void | ec_slave_add_init_cmd (ec_t *pec, osal_uint16_t slave, ec_init_cmd_t *cmd) |
| Add master init command. | |
| void | ec_slave_set_dc_config (struct ec *pec, osal_uint16_t slave, int use_dc, int type, osal_uint32_t cycle_time_0, osal_uint32_t cycle_time_1, osal_int32_t cycle_shift) |
| Set Distributed Clocks config to slave. | |
| const osal_char_t * | al_status_code_2_string (int code) |
EtherCAT slave functions.
These are EtherCAT slave specific configuration functions.