SDO_READ (FB)

FUNCTION_BLOCK SDO_READ EXTENDS CiA405Base

This function block is obsolete. It supports only data up to 64kb and no block transfer.

Use new functionblock SDO_READ_DATA instead!

This function block is used for reading a specific object from object dictionary of a DEVICE. If object can be read without error CONFIRM becomes TRUE and DATA contains read data in Little Endian byte order. If an error occurs ERROR becomes unequal 0. In case of a SDO abort ERROR is set to CANOPEN_KERNEL_ERROR.CANOPEN_KERNEL_OTHER_ERROR and ERRORINFO contains the associated abort code (in Little endian) as defined by CiA 301.

InOut:

Scope

Name

Type

Initial

Comment

Inherited from

Input

NETWORK

USINT

1

CAN network number the function block should operate on. Note: It is not the same like the network number in CANBus configurator. The CiA405 NETWORK is calculated by NetID + 1. Example: 1 = CAN0, 2 = CAN1, 3 = CAN2, ...

CiA405Base

ENABLE

BOOL

FALSE

Enables the function block on rising edge. Aborts operation on falling edge.

CiA405Base

TIMEOUT

UDINT

0

Timeout in ms; 0 means no timeout

CiA405Base

Output

CONFIRM

BOOL

FALSE

TRUE: function block finished without error

CiA405Base

ERROR

CANOPEN_KERNEL_ERROR

CANOPEN_KERNEL_ERROR.CANOPEN_KERNEL_NO_ERROR

Error code: see CANOPEN_KERNEL_ERROR for further details

CiA405Base

Input

DEVICE

DEVICE

NodeID of destination device; 0 means local device (= CANopenManager)

CHANNEL

USINT

1

SDO channel: 0: use any free channel; 1..n: specific channel

INDEX

WORD

Index of object

SUBINDEX

BYTE

SubIndex of object

DATA

POINTER TO BYTE

Pointer to memory the data should be written to. Data is written in CANopen Byte Order (= Little Endian).

Inout

DATALENGTH

UINT

VAR_IN: Size of memory DATA is pointing to. VAR_OUT: Amount of data written to DATA

Output

ERRORINFO

SDO_ERROR

contains abort code in little endian in case of ERROR is CANOPEN_KERNEL_ERROR.CANOPEN_KERNEL_OTHER_ERROR