CANopen Slave Protocol Stack 
Version 7.08.00
Loading...
Searching...
No Matches
cos402.h File Reference

Detailed Description

Object Dictionary for CiA 402 (Drives and Motion Control) The CiA 402 device profile specifies the interface between controllable drive devices and motion controllers. It defines a finite state automaton (FSA) for the power drive system (PDS), a set of operating modes including velocity mode (vl), and a standardised object dictionary for process data exchange via PDO services.

Object dictionary

The module adds the following objects to the object dictionary:

Index Description Function / Variable Configuration Symbol
6007h Abort connect option code Cos402_Idx6007() -
6040h Controlword Cos402_Idx6040() -
6041h Statusword Cos402_Idx6041() -
6042h vl target velocity Cos402_Idx6042() -
6043h vl velocity demand Cos402_Idx6043() -
6044h vl velocity actual value Cos402_Idx6044() -
6046h vl velocity min max amount Cos402_Idx6046() -
6048h vl velocity acceleration Cos402_Idx6048() -
6049h vl velocity deceleration Cos402_Idx6049() -
604Ah vl velocity quick stop Cos402_Idx604A() -
604Bh vl set-point factor Cos402_Idx604B() -
604Ch vl dimension factor Cos402_Idx604C() -
605Ah Quick stop option code Cos402_Idx605A() -
605Bh Shutdown option code Cos402_Idx605B() -
605Ch Disable operation option code Cos402_Idx605C() -
605Dh Halt option code Cos402_Idx605D() -
605Eh Fault reaction option code Cos402_Idx605E() -
6060h Modes of operation Cos402_Idx6060() -
6061h Modes of operation display Cos402_Idx6061() -
6064h Position actual value Cos402_Idx6064() -
607Ah Target position Cos402_Idx607A() -
607Bh Position range limit Cos402_Idx607B() -
607Dh Software position limit Cos402_Idx607D() -
607Eh Polarity Cos402_Idx607E() -
607Fh Max profile velocity Cos402_Idx607F() -
6080h Max motor speed Cos402_Idx6080() -
6081h Profile velocity Cos402_Idx6081() -
6082h End velocity Cos402_Idx6082() -
6083h Profile acceleration Cos402_Idx6083() -
6084h Profile deceleration Cos402_Idx6084() -
6085h Quick stop deceleration Cos402_Idx6085() -
6086h Motion profile type Cos402_Idx6086() -
60C5h Max acceleration Cos402_Idx60C5() -
60C6h Max deceleration Cos402_Idx60C6() -
6502h Supported drive modes Cos402_Idx6502() -
Include dependency graph for cos402.h:

Data Structures

struct  Cos402_Common_s
struct  Cos402_Velocity_s

Macros

#define COS_DS402_VERSION_MAJOR   2
#define COS_DS402_VERSION_MINOR   0

Functions

const Cos402_Common_tsCos402_GetCommon (void)
const Cos402_Velocity_tsCos402_GetVelocity (void)
void Cos402_ParmInit (void)
uint8_t Cos402_ParmLoad (void)
uint8_t Cos402_ParmSave (void)
void Cos402_SetCommon (const Cos402_Common_ts *ptsCommonV)
void Cos402_SetVelocity (const Cos402_Velocity_ts *ptsVelocityV)

Variables

uint16_t uwControl6040_RcvPdoG
int16_t swVlTarget6042_RcvPdoG
int8_t sbModeOp6060_RcvPdoG
int32_t slTargetPos607A_RcvPdoG
uint16_t uwStatus6041_TrmPdoG
int16_t swVlDemand6043_TrmPdoG
int16_t swVlActual6044_TrmPdoG
int8_t sbModeOpDisp6061_TrmPdoG
int32_t slPosActual6064_TrmPdoG

Function Documentation

◆ Cos402_GetCommon()

const Cos402_Common_ts * Cos402_GetCommon ( void )
Returns
pointer to the internal Cos402_Common_ts structure, never NULL
See also
Cos402_SetCommon()

Returns a pointer to the internal Cos402_Common_ts data store. The caller must not modify the structure through this pointer; use Cos402_SetCommon() to update the fields.

It provides read access to all mode-independent object dictionary values (controlword, statusword, option codes, modes of operation, and profile position objects).

◆ Cos402_GetVelocity()

const Cos402_Velocity_ts * Cos402_GetVelocity ( void )
Returns
pointer to the internal Cos402_Velocity_ts structure, never NULL
See also
Cos402_SetVelocity()

Returns a pointer to the internal Cos402_Velocity_ts data store. The caller must not modify the structure through this pointer; use Cos402_SetVelocity() to update the fields.

It provides read access to all vl mode object dictionary values (target velocity, demand, actual value, ramp parameters, and scaling factors).

◆ Cos402_ParmInit()

void Cos402_ParmInit ( void )

The function initialises the object dictionary parameters of the CiA 402 device profile to their default values. It shall be called during application start-up, before Cos402_ParmLoad() is invoked.

◆ Cos402_ParmLoad()

uint8_t Cos402_ParmLoad ( void )
Returns
Status of NVM read operation

The function loads the stored CiA 402 object dictionary parameters from non-volatile memory.

◆ Cos402_ParmSave()

uint8_t Cos402_ParmSave ( void )
Returns
Status of NVM write operation

The function stores the CiA 402 object dictionary parameters to non-volatile memory.

◆ Cos402_SetCommon()

void Cos402_SetCommon ( const Cos402_Common_ts * ptsCommonV)
Parameters
[in]ptsCommonVpointer to common parameter structure

The function copies the structure pointed to by ptsCommonV into the internal common parameter set. It allows the application to update mode-independent object dictionary values at run-time (e.g. statusword, modes of operation display).

◆ Cos402_SetVelocity()

void Cos402_SetVelocity ( const Cos402_Velocity_ts * ptsVelocityV)
Parameters
[in]ptsVelocityVpointer to velocity mode parameter structure

The function copies the structure pointed to by ptsVelocityV into the internal velocity mode (vl mode) parameter set. It allows the application to update vl mode object dictionary values at run-time (e.g. actual velocity, velocity demand).

References sbModeOp6060_RcvPdoG, sbModeOpDisp6061_TrmPdoG, slPosActual6064_TrmPdoG, slTargetPos607A_RcvPdoG, swVlActual6044_TrmPdoG, swVlDemand6043_TrmPdoG, swVlTarget6042_RcvPdoG, uwControl6040_RcvPdoG, and uwStatus6041_TrmPdoG.

Variable Documentation

◆ sbModeOp6060_RcvPdoG

int8_t sbModeOp6060_RcvPdoG
extern

6060h:00h modes of operation

Referenced by Cos402_SetVelocity().

◆ sbModeOpDisp6061_TrmPdoG

int8_t sbModeOpDisp6061_TrmPdoG
extern

6061h:00h modes of operation display

Referenced by Cos402_SetVelocity().

◆ slPosActual6064_TrmPdoG

int32_t slPosActual6064_TrmPdoG
extern

6064h:00h position actual value

Referenced by Cos402_SetVelocity().

◆ slTargetPos607A_RcvPdoG

int32_t slTargetPos607A_RcvPdoG
extern

607Ah:00h target position

Referenced by Cos402_SetVelocity().

◆ swVlActual6044_TrmPdoG

int16_t swVlActual6044_TrmPdoG
extern

6044h:00h vl velocity actual value

Referenced by Cos402_SetVelocity().

◆ swVlDemand6043_TrmPdoG

int16_t swVlDemand6043_TrmPdoG
extern

6043h:00h vl velocity demand

Referenced by Cos402_SetVelocity().

◆ swVlTarget6042_RcvPdoG

int16_t swVlTarget6042_RcvPdoG
extern

6042h:00h vl target velocity

Referenced by Cos402_SetVelocity().

◆ uwControl6040_RcvPdoG

uint16_t uwControl6040_RcvPdoG
extern

6040h:00h controlword

Referenced by Cos402_SetVelocity().

◆ uwStatus6041_TrmPdoG

uint16_t uwStatus6041_TrmPdoG
extern

6041h:00h statusword

Referenced by Cos402_SetVelocity().