EtherCAT Slave  1.06.01
ecSlvCiA402.h

CiA402 Application interface.

Author
KUNBUS GmbH
Date
2021-05-18
#if !(defined __ECSLVCIA402_H__)
#define __ECSLVCIA402_H__ 1
#include <osal.h>
#include <ecSlvApi.h>
#include <ESL_os.h>
/*-----------------------------------------------------------------------------------------
------
------ Includes
------
-----------------------------------------------------------------------------------------*/
#define AXES_NUMBER 3
typedef struct EC_SLV_APP_sCIA_object
{
uint16_t objectIndex;
uint16_t pdoObjectOffset;
uint16_t pdoOffset;
{
uint16_t objectIndex;
uint8_t objectSubIndex;
{
/*EC_SLV_APP_sCIA_object_t abortConnectionOptionCodeIndex; not used */
/* EC_SLV_APP_sCIA_object_t haltOptionCodeIndex; not used */
/* EC_SLV_APP_sCIA_object_t positionDemandValueIndex; not used */
/* EC_SLV_APP_sCIA_object_t positionActualInternalValueIndex; not used */
/* EC_SLV_APP_sCIA_object_t followingErrorWindowIndex; not used */
/* EC_SLV_APP_sCIA_object_t followingErrorTimeoutIndex; not used */
/* EC_SLV_APP_sCIA_object_t positionWindowIndex; not used */
/* EC_SLV_APP_sCIA_object_t positionWindowTimeIndex; not used */
/* EC_SLV_APP_sCIA_object_t velocitySensorActualValueIndex; not used */
/* EC_SLV_APP_sCIA_object_t velocityDemandValueIndex; not used */
/* EC_SLV_APP_sCIA_object_t velocityWindowIndex; not used */
/* EC_SLV_APP_sCIA_object_t velocityWindowTimeIndex; not used */
/* EC_SLV_APP_sCIA_object_t velocityThresholdIndex; not used */
/* EC_SLV_APP_sCIA_object_t velocityThresholdTimeIndex; not used */
/* EC_SLV_APP_sCIA_object_t maxTorqueIndex; not used */
/* EC_SLV_APP_sCIA_object_t torqueDemandIndex; not used */
/* EC_SLV_APP_sCIA_object_t currentActualValueIndex; not used */
/* EC_SLV_APP_sCIA_object_t positionRangeLimitIndex; not used */
/* EC_SLV_APP_sCIA_object_t homeOffsetIndex; not used */
/* EC_SLV_APP_sCIA_object_t polarityIndex; not used */
/* EC_SLV_APP_sCIA_object_t maxMotorSpeedIndex; not used */
/* EC_SLV_APP_sCIA_object_t profileVelocityIndex; not used */
/* EC_SLV_APP_sCIA_object_t profileAccelerationIndex; not used */
/* EC_SLV_APP_sCIA_object_t profileDecelerationIndex; not used */
/* EC_SLV_APP_sCIA_object_t quickStopDecelerationIndex; not used */
/* EC_SLV_APP_sCIA_object_t motionProfileTypeIndex; not used */
/* EC_SLV_APP_sCIA_object_t positionEncoderResolutionIndex; not used */
/* EC_SLV_APP_sCIA_object_t gearRatioIndex; not used */
/* EC_SLV_APP_sCIA_object_t feedConstantIndex; not used */
/* EC_SLV_APP_sCIA_object_t velocityFactorIndex; not used */
/* EC_SLV_APP_sCIA_object_t homingMethodIndex; not used */
/* EC_SLV_APP_sCIA_object_t homingSpeedsIndex; not used */
/* EC_SLV_APP_sCIA_object_t homingAccelerationIndex; not used */
/* EC_SLV_APP_sCIA_object_t positionOffsetIndex; not used */
/* EC_SLV_APP_sCIA_object_t velocityOffsetIndex; not used */
/* EC_SLV_APP_sCIA_object_t torqueOffsetIndex; not used */
/* EC_SLV_APP_sCIA_object_t touchProbeFunctionIndex; not used */
/* EC_SLV_APP_sCIA_object_t touchProbeStatusIndex; not used */
/* EC_SLV_APP_sCIA_object_t touchProbe1PosEdgeIndex; not used */
/* EC_SLV_APP_sCIA_object_t touchProbe1NegEdgeIndex; not used */
/* EC_SLV_APP_sCIA_object_t touchProbe2PosEdgeIndex; not used */
/* EC_SLV_APP_sCIA_object_t touchProbe2NegEdgeIndex; not used */
/* EC_SLV_APP_sCIA_object_t interpolationTimePeriodIndex; not used */
/* EC_SLV_APP_sCIA_object_t maxAccelerationIndex; not used */
/* EC_SLV_APP_sCIA_object_t maxDecelerationIndex; not used */
/* EC_SLV_APP_sCIA_object_t touchProbe1PosEdgeCntIndex; not used */
/* EC_SLV_APP_sCIA_object_t touchProbe1NegEdgeCntIndex; not used */
/* EC_SLV_APP_sCIA_object_t touchProbe2PosEdgeCntIndex; not used */
/* EC_SLV_APP_sCIA_object_t touchProbe2NegEdgeCntIndex; not used */
/* EC_SLV_APP_sCIA_object_t positiveTorqueLimitValueIndex; not used */
/* EC_SLV_APP_sCIA_object_t negativeTorqueLimitValueIndex; not used */
/* EC_SLV_APP_sCIA_object_t followingErrorActualValueIndex; not used */
uint32_t posLimitMax;
uint32_t posLimitMin;
{
/* Threads */
#if (defined OSAL_FREERTOS) /* hard to resolve this OS dependency, keep it here */
TaskP_Object mainThreadHandle;
TaskP_Params mainThreadParam;
#elif (defined OSAL_FREERTOS_JACINTO) /* hard to resolve this OS dependency, keep it here */
TaskP_Handle mainThreadHandle;
TaskP_Params mainThreadParam;
#else
#endif
/* Ressources */
void* gpioHandle;
void* remoteHandle;
#if (defined OSAL_LINUX)
struct stat buffer;
uint8_t foeValue;
#endif
int32_t msec,
uint8_t state;
uint8_t rsvd[3]; /* better be uint32_t aligned */
clock_t prev, diff;
uint16_t pdoOutLen;
uint16_t pdoInLen;
uint8_t* pdRxBuffer;
uint8_t* pdTxBuffer;
uint16_t realPdoOutLen;
uint16_t realPdoInLen;
#if (defined __cplusplus)
extern "C" {
#endif
#if (defined __cplusplus)
}
#endif
#endif /* __ECSLVSIMPLE_H__ */
EC_SLV_APP_sCIA_axisData::positionLimitMax
EC_SLV_APP_sCIA_objectEntry_t positionLimitMax
Definition: ecSlvCiA402.h:147
EC_SLV_APP_Sapplication::pt2007RecObj
EC_API_SLV_SCoE_Object_t * pt2007RecObj
Definition: ecSlvSimple.h:89
EC_SLV_APP_sCIA_axisData::swPositionLimitIndex
EC_SLV_APP_sCIA_object_t swPositionLimitIndex
Definition: ecSlvCiA402.h:110
EC_SLV_APP_Sapplication::pdRxBuffer
uint8_t * pdRxBuffer
Definition: ecSlvCiA402.h:201
EC_SLV_APP_Sapplication::pdTxBuffer
uint8_t * pdTxBuffer
Definition: ecSlvCiA402.h:202
EC_SLV_APP_sCIA_object::pdoOffset
uint16_t pdoOffset
Definition: ecSlvCiA402.h:64
EC_SLV_APP_sCIA_axisData::positionActualValueIndex
EC_SLV_APP_sCIA_object_t positionActualValueIndex
Definition: ecSlvCiA402.h:90
EC_SLV_APP_Sapplication::ptRecObjOut
EC_API_SLV_SCoE_Object_t * ptRecObjOut
Definition: ecSlvSimple.h:87
EC_SLV_APP_Sapplication::prev
clock_t prev
Definition: ecSlvSimple.h:85
EC_SLV_APP_registerStacklessBoardFunctions
void EC_SLV_APP_registerStacklessBoardFunctions(EC_SLV_APP_Sapplication_t *pAppInstance_p)
Register board related functions, which do not use stack handle.
Definition: ecSlvSimple.c:2114
EC_SLV_APP_Sapplication::ioexpLedHandle
void * ioexpLedHandle
Definition: ecSlvSimple.h:74
EC_SLV_APP_sCIA_axisData::supportedDriveModesIndex
EC_SLV_APP_sCIA_object_t supportedDriveModesIndex
Definition: ecSlvCiA402.h:145
EC_SLV_APP_Sapplication::pdoOutLen
uint16_t pdoOutLen
Definition: ecSlvCiA402.h:199
EC_SLV_APP_sCIA_object::pSdo
EC_API_SLV_SCoE_Object_t * pSdo
Definition: ecSlvCiA402.h:60
EC_SLV_APP_Sapplication::ptRxPdo1601
EC_API_SLV_SPdo_t * ptRxPdo1601
Definition: ecSlvSimple.h:93
EC_SLV_APP_sCIA_objectEntry
Definition: ecSlvCiA402.h:67
EC_SLV_APP_Sapplication::pt2002RecObj
EC_API_SLV_SCoE_Object_t * pt2002RecObj
Definition: ecSlvSimple.h:88
EC_SLV_APP_Sapplication::rsvd
uint8_t rsvd[3]
Definition: ecSlvSimple.h:84
EC_SLV_APP_applicationDeInit
void EC_SLV_APP_applicationDeInit(EC_SLV_APP_Sapplication_t *pAppInstance_p)
Deinitialize application.
Definition: ecSlvSimple.c:2457
EC_SLV_APP_Sapplication::pdoInLen
uint16_t pdoInLen
Definition: ecSlvCiA402.h:200
EC_SLV_APP_Sapplication::mainThreadHandle
void * mainThreadHandle
Definition: ecSlvSimple.h:67
EC_SLV_APP_Sapplication::ptTxPdo1A01
EC_API_SLV_SPdo_t * ptTxPdo1A01
Definition: ecSlvSimple.h:95
EC_SLV_APP_sCIA_axisData::controlWordIndex
EC_SLV_APP_sCIA_object_t controlWordIndex
Definition: ecSlvCiA402.h:79
EC_API_SLV_SCoE_Object_t
struct EC_API_SLV_SCoE_Object EC_API_SLV_SCoE_Object_t
TSdo describes an Object Dictionary Object.
Definition: ecSlvApi.h:132
EC_SLV_APP_sCIA_axisData::modesOfOperationDisplayIndex
EC_SLV_APP_sCIA_object_t modesOfOperationDisplayIndex
Definition: ecSlvCiA402.h:87
EC_SLV_APP_Sapplication::state
uint8_t state
Definition: ecSlvSimple.h:83
EC_SLV_APP_Sapplication
Definition: ecSlvSimple.h:55
EC_SLV_APP_sCIA_object
Definition: ecSlvCiA402.h:57
EC_API_SLV_SHandle_t
struct EC_API_SLV_SHandle EC_API_SLV_SHandle_t
EC_API_SLV_SHandle_t describes the EtherCAT Slave API.
Definition: ecSlvApi.h:135
EC_SLV_APP_Sapplication::ptRxPdo1602
EC_API_SLV_SPdo_t * ptRxPdo1602
Definition: ecSlvCiA402.h:194
EC_SLV_APP_sCIA_object::objectIndex
uint16_t objectIndex
Definition: ecSlvCiA402.h:59
EC_SLV_APP_Sapplication::gpioHandle
void * gpioHandle
Definition: ecSlvSimple.h:72
EC_SLV_APP_sCIA_axisData::targetVelocityIndex
EC_SLV_APP_sCIA_object_t targetVelocityIndex
Definition: ecSlvCiA402.h:112
EC_SLV_APP_sCIA_objectEntry::objectIndex
uint16_t objectIndex
Definition: ecSlvCiA402.h:69
EC_SLV_APP_sCIA_axisData::posLimitMax
uint32_t posLimitMax
Definition: ecSlvCiA402.h:150
EC_API_SLV_SPdo_t
struct EC_API_SLV_SPdo EC_API_SLV_SPdo_t
TPdo is used to describe the RxPDOs and TxPDOs.
Definition: ecSlvApi.h:126
EC_SLV_APP_sCIA_axisData::statusWordIndex
EC_SLV_APP_sCIA_object_t statusWordIndex
Definition: ecSlvCiA402.h:80
EC_SLV_APP_Sapplication::pt200FRecObj
EC_API_SLV_SCoE_Object_t * pt200FRecObj
Definition: ecSlvSimple.h:90
EC_SLV_APP_Sapplication::ptTxPdo1A00
EC_API_SLV_SPdo_t * ptTxPdo1A00
Definition: ecSlvSimple.h:94
EC_SLV_APP_Sapplication::loopThreadHandle
void * loopThreadHandle
Definition: ecSlvSimple.h:69
EC_SLV_APP_sCIA_axisData::targetPositionIndex
EC_SLV_APP_sCIA_object_t targetPositionIndex
Definition: ecSlvCiA402.h:107
EC_SLV_APP_Sapplication::CiA402_axisData
EC_SLV_APP_sCIA_axisData_t CiA402_axisData[AXES_NUMBER]
Definition: ecSlvCiA402.h:206
EC_SLV_APP_sCIA_axisData::quickStopIndex
EC_SLV_APP_sCIA_object_t quickStopIndex
Definition: ecSlvCiA402.h:81
EC_SLV_APP_Sapplication::remoteHandle
void * remoteHandle
Definition: ecSlvSimple.h:73
EC_SLV_APP_Sapplication::selectedPruInstance
uint32_t selectedPruInstance
Definition: ecSlvSimple.h:57
EC_SLV_APP_sCIA_axisData
Definition: ecSlvCiA402.h:76
EC_SLV_APP_sCIA_object::pdoObject
EC_API_SLV_SPdo_t * pdoObject
Definition: ecSlvCiA402.h:62
EC_API_SLV_SCoE_ObjEntry_t
struct EC_API_SLV_SCoE_ObjEntry EC_API_SLV_SCoE_ObjEntry_t
TSdoEntry describes an OBD Object Entry.
Definition: ecSlvApi.h:129
EC_SLV_APP_sCIA_axisData::disableOperationIndex
EC_SLV_APP_sCIA_object_t disableOperationIndex
Definition: ecSlvCiA402.h:83
EC_SLV_APP_sCIA_axisData::positionLimitMin
EC_SLV_APP_sCIA_objectEntry_t positionLimitMin
Definition: ecSlvCiA402.h:148
EC_SLV_APP_Sapplication::realPdoInLen
uint16_t realPdoInLen
Definition: ecSlvCiA402.h:205
EC_SLV_APP_sCIA_object::pdoObjectOffset
uint16_t pdoObjectOffset
Definition: ecSlvCiA402.h:63
EC_SLV_APP_applicationInit
void EC_SLV_APP_applicationInit(EC_SLV_APP_Sapplication_t *pAppInstance_p)
Initialize application.
Definition: ecSlvSimple.c:2295
EC_SLV_APP_Sapplication::ptEcSlvApi
EC_API_SLV_SHandle_t * ptEcSlvApi
Definition: ecSlvSimple.h:97
EC_SLV_APP_sCIA_objectEntry::pObjetEntry
EC_API_SLV_SCoE_ObjEntry_t * pObjetEntry
Definition: ecSlvCiA402.h:73
EC_SLV_APP_Sapplication::ptRxPdo1600
EC_API_SLV_SPdo_t * ptRxPdo1600
Definition: ecSlvSimple.h:92
EC_SLV_APP_sCIA_axisData::posLimitMin
uint32_t posLimitMin
Definition: ecSlvCiA402.h:151
EC_SLV_APP_initBoardFunctions
void EC_SLV_APP_initBoardFunctions(EC_SLV_APP_Sapplication_t *pAppInstance_p)
Initialize board related functions.
Definition: ecSlvSimple.c:2019
EC_SLV_APP_Sapplication::realPdoOutLen
uint16_t realPdoOutLen
Definition: ecSlvCiA402.h:204
EC_SLV_APP_sCIA_objectEntry::pSdo
EC_API_SLV_SCoE_Object_t * pSdo
Definition: ecSlvCiA402.h:71
EC_SLV_APP_sCIA_axisData::targetTorqueIndex
EC_SLV_APP_sCIA_object_t targetTorqueIndex
Definition: ecSlvCiA402.h:102
EC_SLV_APP_Sapplication::trigger
int32_t trigger
Definition: ecSlvSimple.h:81
EC_SLV_APP_Sapplication::diff
clock_t diff
Definition: ecSlvSimple.h:85
EC_SLV_APP_sCIA_objectEntry::objectSubIndex
uint8_t objectSubIndex
Definition: ecSlvCiA402.h:70
EC_SLV_APP_Sapplication::ptTxPdo1A02
EC_API_SLV_SPdo_t * ptTxPdo1A02
Definition: ecSlvCiA402.h:197
EC_SLV_APP_Sapplication::msec
int32_t msec
Definition: ecSlvSimple.h:80
EC_SLV_APP_sCIA_axisData::velocityActualValueIndex
EC_SLV_APP_sCIA_object_t velocityActualValueIndex
Definition: ecSlvCiA402.h:97
EC_SLV_APP_sCIA_axisData::shutdownIndex
EC_SLV_APP_sCIA_object_t shutdownIndex
Definition: ecSlvCiA402.h:82
EC_SLV_APP_sCIA_axisData::faultReactionIndex
EC_SLV_APP_sCIA_object_t faultReactionIndex
Definition: ecSlvCiA402.h:85
EC_SLV_APP_sCIA_axisData::modesOfOperationIndex
EC_SLV_APP_sCIA_object_t modesOfOperationIndex
Definition: ecSlvCiA402.h:86
EC_SLV_APP_sCIA_axisData::torqueActualValueIndex
EC_SLV_APP_sCIA_object_t torqueActualValueIndex
Definition: ecSlvCiA402.h:105