SDO_WRITE (FB)

FUNCTION_BLOCK SDO_WRITE EXTENDS CiA405Base

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

Use new functionblock SDO_WRITE_DATA instead!

This function block is used for writing a specific object in object dictionary of a DEVICE. If DATA was written without error CONFIRM becomes TRUE. DATA has to be 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

MODE

SDO_MODE

specifies the SDO Mode to be used

DATA

POINTER TO BYTE

pointer to data which should be written (data has to be in little endian byte order)

DATALENGTH

UINT

length of data in bytes

Output

ERRORINFO

SDO_ERROR

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