SOEM
v1.4.0
|
Configuration module for EtherCAT master. More...
#include <stdio.h>
#include <string.h>
#include "osal.h"
#include "oshw.h"
#include "ethercattype.h"
#include "ethercatbase.h"
#include "ethercatmain.h"
#include "ethercatcoe.h"
#include "ethercatsoe.h"
#include "ethercatconfig.h"
#include "ethercatconfiglist.h"
Data Structures | |
struct | ecx_mapt_t |
struct | ec_configlist_t |
Macros | |
#define | EC_DEFAULTMBXSM0 0x00010026 |
#define | EC_DEFAULTMBXSM1 0x00010022 |
#define | EC_DEFAULTDOSM0 0x00010044 |
Functions | |
int | ec_findconfig (uint32 man, uint32 id) |
void | ecx_init_context (ecx_contextt *context) |
int | ecx_detect_slaves (ecx_contextt *context) |
static void | ecx_set_slaves_to_default (ecx_contextt *context) |
static int | ecx_config_from_table (ecx_contextt *context, uint16 slave) |
static int | ecx_lookup_prev_sii (ecx_contextt *context, uint16 slave) |
int | ecx_config_init (ecx_contextt *context, uint8 usetable) |
static int | ecx_lookup_mapping (ecx_contextt *context, uint16 slave, int *Osize, int *Isize) |
static int | ecx_map_coe_soe (ecx_contextt *context, uint16 slave, int thread_n) |
static int | ecx_map_sii (ecx_contextt *context, uint16 slave) |
static int | ecx_map_sm (ecx_contextt *context, uint16 slave) |
static int | ecx_get_threadcount (void) |
static void | ecx_config_find_mappings (ecx_contextt *context, uint8 group) |
static void | ecx_config_create_input_mappings (ecx_contextt *context, void *pIOmap, uint8 group, int16 slave, uint32 *LogAddr, uint8 *BitPos) |
static void | ecx_config_create_output_mappings (ecx_contextt *context, void *pIOmap, uint8 group, int16 slave, uint32 *LogAddr, uint8 *BitPos) |
int | ecx_config_map_group (ecx_contextt *context, void *pIOmap, uint8 group) |
int | ecx_config_overlap_map_group (ecx_contextt *context, void *pIOmap, uint8 group) |
int | ecx_recover_slave (ecx_contextt *context, uint16 slave, int timeout) |
int | ecx_reconfig_slave (ecx_contextt *context, uint16 slave, int timeout) |
int | ec_config_init (uint8 usetable) |
int | ec_config_map_group (void *pIOmap, uint8 group) |
int | ec_config_overlap_map_group (void *pIOmap, uint8 group) |
int | ec_config_map (void *pIOmap) |
int | ec_config_overlap_map (void *pIOmap) |
int | ec_config (uint8 usetable, void *pIOmap) |
int | ec_config_overlap (uint8 usetable, void *pIOmap) |
int | ec_recover_slave (uint16 slave, int timeout) |
int | ec_reconfig_slave (uint16 slave, int timeout) |
Variables | |
ecx_mapt_t | ecx_mapt [EC_MAX_MAPT] |
Configuration module for EtherCAT master.
After successful initialisation with ec_init() or ec_init_redundant() the slaves can be auto configured with this module.
#define EC_DEFAULTDOSM0 0x00010044 |
standard SM0 flags configuration for digital output slaves
#define EC_DEFAULTMBXSM0 0x00010026 |
standard SM0 flags configuration for mailbox slaves
#define EC_DEFAULTMBXSM1 0x00010022 |
standard SM1 flags configuration for mailbox slaves
int ec_config | ( | uint8 | usetable, |
void * | pIOmap | ||
) |
Enumerate / map and init all slaves.
[in] | usetable | = TRUE when using configtable to init slaves, FALSE otherwise |
[out] | pIOmap | = pointer to IOmap |
int ec_config_init | ( | uint8 | usetable | ) |
Enumerate and init all slaves.
[in] | usetable | = TRUE when using configtable to init slaves, FALSE otherwise |
int ec_config_map | ( | void * | pIOmap | ) |
Map all PDOs from slaves to IOmap with Outputs/Inputs in sequential order (legacy SOEM way).
[out] | pIOmap | = pointer to IOmap |
int ec_config_map_group | ( | void * | pIOmap, |
uint8 | group | ||
) |
Map all PDOs in one group of slaves to IOmap with Outputs/Inputs in sequential order (legacy SOEM way).
[out] | pIOmap | = pointer to IOmap |
[in] | group | = group to map, 0 = all groups |
int ec_config_overlap | ( | uint8 | usetable, |
void * | pIOmap | ||
) |
Enumerate / map and init all slaves.
[in] | usetable | = TRUE when using configtable to init slaves, FALSE otherwise |
[out] | pIOmap | = pointer to IOmap |
int ec_config_overlap_map | ( | void * | pIOmap | ) |
Map all PDOs from slaves to IOmap with Outputs/Inputs overlapping. NOTE: Must use this for TI ESC when using LRW.
[out] | pIOmap | = pointer to IOmap |
int ec_config_overlap_map_group | ( | void * | pIOmap, |
uint8 | group | ||
) |
Map all PDOs in one group of slaves to IOmap with Outputs/Inputs overlapping. NOTE: Must use this for TI ESC when using LRW.
[out] | pIOmap | = pointer to IOmap |
[in] | group | = group to map, 0 = all groups |
int ec_findconfig | ( | uint32 | man, |
uint32 | id | ||
) |
Find slave in standard configuration list ec_configlist[]
[in] | man | = manufacturer |
[in] | id | = ID |
int ec_reconfig_slave | ( | uint16 | slave, |
int | timeout | ||
) |
Reconfigure slave.
[in] | slave | = slave to reconfigure |
[in] | timeout | = local timeout f.e. EC_TIMEOUTRET3 |
int ec_recover_slave | ( | uint16 | slave, |
int | timeout | ||
) |
Recover slave.
[in] | slave | = slave to recover |
[in] | timeout | = local timeout f.e. EC_TIMEOUTRET3 |
|
static |
|
static |
|
static |
|
static |
int ecx_config_init | ( | ecx_contextt * | context, |
uint8 | usetable | ||
) |
Enumerate and init all slaves.
[in] | context | = context struct |
[in] | usetable | = TRUE when using configtable to init slaves, FALSE otherwise |
int ecx_config_map_group | ( | ecx_contextt * | context, |
void * | pIOmap, | ||
uint8 | group | ||
) |
Map all PDOs in one group of slaves to IOmap with Outputs/Inputs in sequential order (legacy SOEM way).
[in] | context | = context struct |
[out] | pIOmap | = pointer to IOmap |
[in] | group | = group to map, 0 = all groups |
int ecx_config_overlap_map_group | ( | ecx_contextt * | context, |
void * | pIOmap, | ||
uint8 | group | ||
) |
Map all PDOs in one group of slaves to IOmap with Outputs/Inputs overlapping. NOTE: Must use this for TI ESC when using LRW.
[in] | context | = context struct |
[out] | pIOmap | = pointer to IOmap |
[in] | group | = group to map, 0 = all groups |
int ecx_detect_slaves | ( | ecx_contextt * | context | ) |
|
static |
void ecx_init_context | ( | ecx_contextt * | context | ) |
|
static |
|
static |
|
static |
|
static |
|
static |
int ecx_reconfig_slave | ( | ecx_contextt * | context, |
uint16 | slave, | ||
int | timeout | ||
) |
Reconfigure slave.
[in] | context | = context struct |
[in] | slave | = slave to reconfigure |
[in] | timeout | = local timeout f.e. EC_TIMEOUTRET3 |
int ecx_recover_slave | ( | ecx_contextt * | context, |
uint16 | slave, | ||
int | timeout | ||
) |
Recover slave.
[in] | context | = context struct |
[in] | slave | = slave to recover |
[in] | timeout | = local timeout f.e. EC_TIMEOUTRET3 |
|
static |
ecx_mapt_t ecx_mapt[EC_MAX_MAPT] |