SOEM
v1.4.0
|
Distributed Clock EtherCAT functions. More...
#include "oshw.h"
#include "osal.h"
#include "ethercattype.h"
#include "ethercatbase.h"
#include "ethercatmain.h"
#include "ethercatdc.h"
Macros | |
#define | PORTM0 0x01 |
#define | PORTM1 0x02 |
#define | PORTM2 0x04 |
#define | PORTM3 0x08 |
#define | SyncDelay ((int32)100000000) |
Functions | |
void | ecx_dcsync0 (ecx_contextt *context, uint16 slave, boolean act, uint32 CyclTime, int32 CyclShift) |
void | ecx_dcsync01 (ecx_contextt *context, uint16 slave, boolean act, uint32 CyclTime0, uint32 CyclTime1, int32 CyclShift) |
static int32 | ecx_porttime (ecx_contextt *context, uint16 slave, uint8 port) |
static uint8 | ecx_prevport (ecx_contextt *context, uint16 slave, uint8 port) |
static uint8 | ecx_parentport (ecx_contextt *context, uint16 parent) |
boolean | ecx_configdc (ecx_contextt *context) |
void | ec_dcsync0 (uint16 slave, boolean act, uint32 CyclTime, int32 CyclShift) |
void | ec_dcsync01 (uint16 slave, boolean act, uint32 CyclTime0, uint32 CyclTime1, int32 CyclShift) |
boolean | ec_configdc (void) |
Distributed Clock EtherCAT functions.
#define PORTM0 0x01 |
#define PORTM1 0x02 |
#define PORTM2 0x04 |
#define PORTM3 0x08 |
#define SyncDelay ((int32)100000000) |
1st sync pulse delay in ns here 100ms
boolean ec_configdc | ( | void | ) |
void ec_dcsync0 | ( | uint16 | slave, |
boolean | act, | ||
uint32 | CyclTime, | ||
int32 | CyclShift | ||
) |
void ec_dcsync01 | ( | uint16 | slave, |
boolean | act, | ||
uint32 | CyclTime0, | ||
uint32 | CyclTime1, | ||
int32 | CyclShift | ||
) |
boolean ecx_configdc | ( | ecx_contextt * | context | ) |
Locate DC slaves, measure propagation delays.
[in] | context | = context struct |
void ecx_dcsync0 | ( | ecx_contextt * | context, |
uint16 | slave, | ||
boolean | act, | ||
uint32 | CyclTime, | ||
int32 | CyclShift | ||
) |
Set DC of slave to fire sync0 at CyclTime interval with CyclShift offset.
[in] | context | = context struct |
[in] | slave | Slave number. |
[in] | act | TRUE = active, FALSE = deactivated |
[in] | CyclTime | Cycltime in ns. |
[in] | CyclShift | CyclShift in ns. |
void ecx_dcsync01 | ( | ecx_contextt * | context, |
uint16 | slave, | ||
boolean | act, | ||
uint32 | CyclTime0, | ||
uint32 | CyclTime1, | ||
int32 | CyclShift | ||
) |
Set DC of slave to fire sync0 and sync1 at CyclTime interval with CyclShift offset.
[in] | context | = context struct |
[in] | slave | Slave number. |
[in] | act | TRUE = active, FALSE = deactivated |
[in] | CyclTime0 | Cycltime SYNC0 in ns. |
[in] | CyclTime1 | Cycltime SYNC1 in ns. This time is a delta time in relation to the SYNC0 fire. If CylcTime1 = 0 then SYNC1 fires a the same time as SYNC0. |
[in] | CyclShift | CyclShift in ns. |
|
static |
|
static |
|
static |