EtherCAT SubDevice2.03.00
 
Loading...
Searching...
No Matches
ecSubDeviceCiA402.h

CiA402 Application interface.

CiA402 Application interface.

Author
Texas Instruments Incorporated

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

Neither the name of Texas Instruments Incorporated nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

#if !(defined PROTECT_ECSUBDEVICECIA402_H)
#define PROTECT_ECSUBDEVICECIA402_H 1
#include <osal.h>
#include <ecSlvApi.h>
#include <ESL_os.h>
/*-----------------------------------------------------------------------------------------
------
------ Includes
------
-----------------------------------------------------------------------------------------*/
#define AXES_NUMBER (3u)
/* if dynamic value change while OP is required, this costs 15usec per cycle ! */
#define ENABLE_DYNAMIC_POSITION_LIMITS 0
#if (defined ENABLE_DYNAMIC_POSITION_LIMITS) && (0==ENABLE_DYNAMIC_POSITION_LIMITS)
#define MIN_AXIS_POSITION_LIMIT (INT32_MIN)
#define MAX_AXIS_POSITION_LIMIT (INT32_MAX)
#endif
typedef struct EC_SLV_APP_sCIA_object
{
uint16_t objectIndex;
uint32_t pdoObjectOffset;
uint32_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 */
int32_t posLimitMax;
int32_t posLimitMin;
{
/* Threads */
TaskP_Object mainThreadHandle;
TaskP_Params mainThreadParam;
/* Resources */
void* gpioHandle;
void* remoteHandle;
int32_t msec;
int32_t trigger;
uint8_t state;
uint8_t rsvd[3]; /* better be uint32_t aligned */
clock_t prev;
clock_t diff;
uint32_t pdoOutLen;
uint32_t pdoInLen;
uint8_t* pdRxBuffer;
uint8_t* pdTxBuffer;
uint16_t realPdoOutLen;
uint16_t realPdoInLen;
#if (defined __cplusplus)
extern "C" {
#endif
extern void EC_SLV_APP_CIA_initBoardFunctions (EC_SLV_APP_CIA_Application_t* pAppInstance_p);
extern void EC_SLV_APP_CIA_registerStacklessBoardFunctions(EC_SLV_APP_CIA_Application_t* pAppInstance_p);
#if (defined __cplusplus)
}
#endif
#endif /* PROTECT_ECSUBDEVICECIA402_H */
void EC_SLV_APP_CIA_applicationInit(EC_SLV_APP_CIA_Application_t *pAppInstance_p)
Initialize subdevice application example.
Definition ecSubDeviceCiA402.c:959
Definition ecSlvApiInternal.h:130
Definition ecSlvApiInternal.h:144
Definition ecSlvApiInternal.h:351
Definition ecSlvApiInternal.h:173
uint8_t state
Definition ecSubDeviceCiA402.h:181
EC_API_SLV_SCoE_Object_t * pt200FRecObj
Definition ecSubDeviceCiA402.h:189
clock_t diff
Definition ecSubDeviceCiA402.h:184
uint16_t realPdoOutLen
Definition ecSubDeviceCiA402.h:203
TaskP_Object mainThreadHandle
Definition ecSubDeviceCiA402.h:169
uint8_t * pdRxBuffer
Definition ecSubDeviceCiA402.h:200
void * loopThreadHandle
Definition ecSubDeviceCiA402.h:171
EC_API_SLV_Pdo_t * ptRxPdo1600
Definition ecSubDeviceCiA402.h:191
EC_API_SLV_SCoE_Object_t * pt2007RecObj
Definition ecSubDeviceCiA402.h:188
EC_API_SLV_Pdo_t * ptRxPdo1601
Definition ecSubDeviceCiA402.h:192
void * gpioHandle
Definition ecSubDeviceCiA402.h:174
uint8_t * pdTxBuffer
Definition ecSubDeviceCiA402.h:201
int32_t trigger
Definition ecSubDeviceCiA402.h:179
EC_API_SLV_Pdo_t * ptTxPdo1A01
Definition ecSubDeviceCiA402.h:195
uint8_t rsvd[3]
Definition ecSubDeviceCiA402.h:182
void * ioexpLedHandle
Definition ecSubDeviceCiA402.h:176
EC_API_SLV_SCoE_Object_t * pt2002RecObj
Definition ecSubDeviceCiA402.h:187
uint16_t realPdoInLen
Definition ecSubDeviceCiA402.h:204
uint32_t pdoInLen
Definition ecSubDeviceCiA402.h:199
TaskP_Params mainThreadParam
Definition ecSubDeviceCiA402.h:170
EC_API_SLV_Pdo_t * ptTxPdo1A02
Definition ecSubDeviceCiA402.h:196
uint32_t selectedPruInstance
Definition ecSubDeviceCiA402.h:166
EC_API_SLV_Pdo_t * ptTxPdo1A00
Definition ecSubDeviceCiA402.h:194
EC_API_SLV_SHandle_t * ptEcSlvApi
Definition ecSubDeviceCiA402.h:207
void * remoteHandle
Definition ecSubDeviceCiA402.h:175
EC_API_SLV_SCoE_Object_t * ptRecObjOut
Definition ecSubDeviceCiA402.h:186
int32_t msec
Definition ecSubDeviceCiA402.h:178
EC_API_SLV_Pdo_t * ptRxPdo1602
Definition ecSubDeviceCiA402.h:193
uint32_t pdoOutLen
Definition ecSubDeviceCiA402.h:198
clock_t prev
Definition ecSubDeviceCiA402.h:183
EC_SLV_APP_sCIA_axisData_t CiA402_axisData[AXES_NUMBER]
Definition ecSubDeviceCiA402.h:205
Definition ecSubDeviceCiA402.h:165
EC_SLV_APP_sCIA_object_t statusWordIndex
Definition ecSubDeviceCiA402.h:89
EC_SLV_APP_sCIA_object_t targetTorqueIndex
Definition ecSubDeviceCiA402.h:111
EC_SLV_APP_sCIA_object_t targetVelocityIndex
Definition ecSubDeviceCiA402.h:121
int32_t posLimitMax
Definition ecSubDeviceCiA402.h:159
EC_SLV_APP_sCIA_object_t faultReactionIndex
Definition ecSubDeviceCiA402.h:94
EC_SLV_APP_sCIA_object_t modesOfOperationDisplayIndex
Definition ecSubDeviceCiA402.h:96
EC_SLV_APP_sCIA_object_t targetPositionIndex
Definition ecSubDeviceCiA402.h:116
EC_SLV_APP_sCIA_object_t modesOfOperationIndex
Definition ecSubDeviceCiA402.h:95
EC_SLV_APP_sCIA_object_t velocityActualValueIndex
Definition ecSubDeviceCiA402.h:106
EC_SLV_APP_sCIA_object_t quickStopIndex
Definition ecSubDeviceCiA402.h:90
int32_t posLimitMin
Definition ecSubDeviceCiA402.h:160
EC_SLV_APP_sCIA_objectEntry_t positionLimitMin
Definition ecSubDeviceCiA402.h:157
EC_SLV_APP_sCIA_object_t disableOperationIndex
Definition ecSubDeviceCiA402.h:92
EC_SLV_APP_sCIA_object_t controlWordIndex
Definition ecSubDeviceCiA402.h:88
EC_SLV_APP_sCIA_object_t supportedDriveModesIndex
Definition ecSubDeviceCiA402.h:154
EC_SLV_APP_sCIA_object_t torqueActualValueIndex
Definition ecSubDeviceCiA402.h:114
EC_SLV_APP_sCIA_object_t positionActualValueIndex
Definition ecSubDeviceCiA402.h:99
EC_SLV_APP_sCIA_objectEntry_t positionLimitMax
Definition ecSubDeviceCiA402.h:156
EC_SLV_APP_sCIA_object_t shutdownIndex
Definition ecSubDeviceCiA402.h:91
EC_SLV_APP_sCIA_object_t swPositionLimitIndex
Definition ecSubDeviceCiA402.h:119
Definition ecSubDeviceCiA402.h:86
uint32_t pdoOffset
Definition ecSubDeviceCiA402.h:73
EC_API_SLV_SCoE_Object_t * pSdo
Definition ecSubDeviceCiA402.h:69
uint32_t pdoObjectOffset
Definition ecSubDeviceCiA402.h:72
EC_API_SLV_Pdo_t * pdoObject
Definition ecSubDeviceCiA402.h:71
uint16_t objectIndex
Definition ecSubDeviceCiA402.h:68
EC_API_SLV_SCoE_ObjEntry_t * pObjetEntry
Definition ecSubDeviceCiA402.h:82
EC_API_SLV_SCoE_Object_t * pSdo
Definition ecSubDeviceCiA402.h:80
uint16_t objectIndex
Definition ecSubDeviceCiA402.h:78
uint8_t objectSubIndex
Definition ecSubDeviceCiA402.h:79
Definition ecSubDeviceCiA402.h:77
Definition ecSubDeviceCiA402.h:67