EtherCAT SubDevice
 
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)
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 */
uint32_t posLimitMax;
uint32_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:129
Definition ecSlvApiInternal.h:143
Definition ecSlvApiInternal.h:331
Definition ecSlvApiInternal.h:172
uint8_t state
Definition ecSubDeviceCiA402.h:173
EC_API_SLV_SCoE_Object_t * pt200FRecObj
Definition ecSubDeviceCiA402.h:181
clock_t diff
Definition ecSubDeviceCiA402.h:176
uint16_t realPdoOutLen
Definition ecSubDeviceCiA402.h:195
TaskP_Object mainThreadHandle
Definition ecSubDeviceCiA402.h:161
uint8_t * pdRxBuffer
Definition ecSubDeviceCiA402.h:192
void * loopThreadHandle
Definition ecSubDeviceCiA402.h:163
EC_API_SLV_Pdo_t * ptRxPdo1600
Definition ecSubDeviceCiA402.h:183
EC_API_SLV_SCoE_Object_t * pt2007RecObj
Definition ecSubDeviceCiA402.h:180
EC_API_SLV_Pdo_t * ptRxPdo1601
Definition ecSubDeviceCiA402.h:184
void * gpioHandle
Definition ecSubDeviceCiA402.h:166
uint8_t * pdTxBuffer
Definition ecSubDeviceCiA402.h:193
int32_t trigger
Definition ecSubDeviceCiA402.h:171
EC_API_SLV_Pdo_t * ptTxPdo1A01
Definition ecSubDeviceCiA402.h:187
uint8_t rsvd[3]
Definition ecSubDeviceCiA402.h:174
void * ioexpLedHandle
Definition ecSubDeviceCiA402.h:168
EC_API_SLV_SCoE_Object_t * pt2002RecObj
Definition ecSubDeviceCiA402.h:179
uint16_t realPdoInLen
Definition ecSubDeviceCiA402.h:196
uint32_t pdoInLen
Definition ecSubDeviceCiA402.h:191
TaskP_Params mainThreadParam
Definition ecSubDeviceCiA402.h:162
EC_API_SLV_Pdo_t * ptTxPdo1A02
Definition ecSubDeviceCiA402.h:188
uint32_t selectedPruInstance
Definition ecSubDeviceCiA402.h:158
EC_API_SLV_Pdo_t * ptTxPdo1A00
Definition ecSubDeviceCiA402.h:186
EC_API_SLV_SHandle_t * ptEcSlvApi
Definition ecSubDeviceCiA402.h:199
void * remoteHandle
Definition ecSubDeviceCiA402.h:167
EC_API_SLV_SCoE_Object_t * ptRecObjOut
Definition ecSubDeviceCiA402.h:178
int32_t msec
Definition ecSubDeviceCiA402.h:170
EC_API_SLV_Pdo_t * ptRxPdo1602
Definition ecSubDeviceCiA402.h:185
uint32_t pdoOutLen
Definition ecSubDeviceCiA402.h:190
clock_t prev
Definition ecSubDeviceCiA402.h:175
EC_SLV_APP_sCIA_axisData_t CiA402_axisData[AXES_NUMBER]
Definition ecSubDeviceCiA402.h:197
Definition ecSubDeviceCiA402.h:157
EC_SLV_APP_sCIA_object_t statusWordIndex
Definition ecSubDeviceCiA402.h:81
uint32_t posLimitMin
Definition ecSubDeviceCiA402.h:152
EC_SLV_APP_sCIA_object_t targetTorqueIndex
Definition ecSubDeviceCiA402.h:103
EC_SLV_APP_sCIA_object_t targetVelocityIndex
Definition ecSubDeviceCiA402.h:113
EC_SLV_APP_sCIA_object_t faultReactionIndex
Definition ecSubDeviceCiA402.h:86
EC_SLV_APP_sCIA_object_t modesOfOperationDisplayIndex
Definition ecSubDeviceCiA402.h:88
EC_SLV_APP_sCIA_object_t targetPositionIndex
Definition ecSubDeviceCiA402.h:108
EC_SLV_APP_sCIA_object_t modesOfOperationIndex
Definition ecSubDeviceCiA402.h:87
EC_SLV_APP_sCIA_object_t velocityActualValueIndex
Definition ecSubDeviceCiA402.h:98
EC_SLV_APP_sCIA_object_t quickStopIndex
Definition ecSubDeviceCiA402.h:82
uint32_t posLimitMax
Definition ecSubDeviceCiA402.h:151
EC_SLV_APP_sCIA_objectEntry_t positionLimitMin
Definition ecSubDeviceCiA402.h:149
EC_SLV_APP_sCIA_object_t disableOperationIndex
Definition ecSubDeviceCiA402.h:84
EC_SLV_APP_sCIA_object_t controlWordIndex
Definition ecSubDeviceCiA402.h:80
EC_SLV_APP_sCIA_object_t supportedDriveModesIndex
Definition ecSubDeviceCiA402.h:146
EC_SLV_APP_sCIA_object_t torqueActualValueIndex
Definition ecSubDeviceCiA402.h:106
EC_SLV_APP_sCIA_object_t positionActualValueIndex
Definition ecSubDeviceCiA402.h:91
EC_SLV_APP_sCIA_objectEntry_t positionLimitMax
Definition ecSubDeviceCiA402.h:148
EC_SLV_APP_sCIA_object_t shutdownIndex
Definition ecSubDeviceCiA402.h:83
EC_SLV_APP_sCIA_object_t swPositionLimitIndex
Definition ecSubDeviceCiA402.h:111
Definition ecSubDeviceCiA402.h:78
uint32_t pdoOffset
Definition ecSubDeviceCiA402.h:65
EC_API_SLV_SCoE_Object_t * pSdo
Definition ecSubDeviceCiA402.h:61
uint32_t pdoObjectOffset
Definition ecSubDeviceCiA402.h:64
EC_API_SLV_Pdo_t * pdoObject
Definition ecSubDeviceCiA402.h:63
uint16_t objectIndex
Definition ecSubDeviceCiA402.h:60
EC_API_SLV_SCoE_ObjEntry_t * pObjetEntry
Definition ecSubDeviceCiA402.h:74
EC_API_SLV_SCoE_Object_t * pSdo
Definition ecSubDeviceCiA402.h:72
uint16_t objectIndex
Definition ecSubDeviceCiA402.h:70
uint8_t objectSubIndex
Definition ecSubDeviceCiA402.h:71
Definition ecSubDeviceCiA402.h:69
Definition ecSubDeviceCiA402.h:59