Supported platforms: CODESYS 2.3, CODESYS 3.5

 

NM_ConfigureSlave (FB)

Description

FUNCTION block writes SDO indices and PDO mappings TO remote nodes. Block operation starts on rising edge of i_Enable. Boolean variable i_Enable has to be kept TRUE through the whole operation. An instance of NM_ConfigureSlavePDOs is needed for each CANopen slave.

 

Function sets configuration to slave node with a sequence: SDO, TPDO and last RPDO. When  i_Enable rises, whole sequence is reset and all status are cleared on all the configuration arrays (SDO, TPDO and RPDO).

Limitations

Each slave must have it's own instance of this function block.  Because of that, all slaves can be configured simultaneously.

 

This function is for library's internal use only.  Function block is called with i_Enable false (reset)  from NM_NetworkManager, when slave is "init" state.  After that on "preoperational" state it execute configuration sequence with i_Enable true.  

Inputs

CODESYS 2.3CODESYS 2.3

Input variable name

Data type

Range

Description

i_Enable

BOOL

TRUE/FALSE

Rising edge starts the operation. The operation stops if i_Enable is set to FALSE

i_NodeID

BYTE

1...127

Node ID of device to monitor/manage.

i_pSDOConfigureList

POINTER TO NM_SlaveODConfiguration

 

Pointer to the beginning of an array of indices to configure

i_NumberOfODEntries

WORD

0...65535

Number of indices to configure.

i_pTPDOConfigureList

POINTER TO NM_SlavePDOConfiguration

 

Pointer to the beginning of an array of TPDOs to configure.

i_pTPDOMappingList

POINTER TO DWORD

 

Pointer to the beginning of an array of TPDO mappings

i_NumberOfTPDOs

WORD

0...65535

Number of PDOs to configure.

i_pRPDOConfigureList

POINTER TO NM_SlavePDOConfiguration

 

Pointer to the beginning of an array of RPDOs to configure.

i_pRPDOMappingList

POINTER TO DWORD

 

Pointer to the beginning of an array of RPDO mappings

i_NumberOfRPDOs

WORD

0...65535

Number of PDOs to configure.

i_Channel

BYTE

 

Number of CAN bus to monitor/manage.

i_Retries

BYTE

0...254

Number of retries in case of SDO timeout

i_Timeout

TIME

 

Timeout time of the SDO transfer

 

 

CODESYS 3.5CODESYS 3.5

Input variable name

Data type

Range

Description

i_Enable

BOOL

TRUE/FALSE

Rising edge starts the operation. The operation stops if i_Enable is set to FALSE

i_NodeID

BYTE

1...127

Node ID of device to monitor/manage.

i_pSDOConfigureList

POINTER TO NM_SlaveODConfiguration

 

Pointer to the beginning of an array of indices to configure

i_NumberOfODEntries

WORD

0...65535

Number of indices to configure.

i_pTPDOConfigureList

POINTER TO NM_SlavePDOConfiguration

 

Pointer to the beginning of an array of TPDOs to configure.

i_pTPDOMappingList

POINTER TO DWORD

 

Pointer to the beginning of an array of TPDO mappings

i_NumberOfTPDOs

WORD

0...65535

Number of PDOs to configure.

i_pRPDOConfigureList

POINTER TO NM_SlavePDOConfiguration

 

Pointer to the beginning of an array of RPDOs to configure.

i_pRPDOMappingList

POINTER TO DWORD

 

Pointer to the beginning of an array of RPDO mappings

i_NumberOfRPDOs

WORD

0...65535

Number of PDOs to configure.

i_CanChannel

CANVXD_API.ICANVXD

 

CAN channel interface.

i_Retries

BYTE

0...254

Number of retries in case of SDO timeout

i_Timeout

TIME

 

Timeout time of the SDO transfer

 

 

Outputs

Output variable name

Data type

Range

Description

o_Configured

BOOL

FALSE/TRUE

TRUE when the operation is finished. Otherwise FALSE

o_Progress

WORD

1..i_NumberOf

Indicates the array index which is currently being processed. Reaches i_NumberOfEntries when the operation is done

o_StatusIndex

INT

-1..2

Status of current SDO transfer: -1=Fault, 0=Not started, 1=Busy, 2=Done

o_SdoIndexWithFault

WORD

 

In case of an error, indicates which array index caused the error

o_StepWithFault

BYTE

 

In case of an error, indicates the step which caused

 the error:

0 = Disable PDO

1 = Set number of mappings to 0

2 = Write mappings

3 = Set number of mappings

4 = Set transmission type

5 = Set inhibit time (TPDO only)

6 = Set event time (TPDO only)

7 = Set PDO COB-ID

 

See also

 

Source file Topic000643.htm

Last updated 13-Jun-2024