CIA405.SDO_WRITE4 (FB)

 

(CAA_Cia405.Library)

Extends CIA405.CIA405BASE.

Input:

NETWORK

USINT

see CIA405.CIA405BASE

ENABLE

BOOL

see CIA405.CIA405BASE

TIMEOUT

UDINT

see CIA405.CIA405BASE

DEVICE

CIA405.DEVICE

Addressed device; 0 means local device

range: 0 … 127

initial: 0

CHANNEL

USINT

SDO channel number

range: 1 … 128

initial: 1

INDEX

WORD

Object index

range: 0000 … FFFF

initial: 0

SUBINDEX

BYTE

Object subindex

range: 00 … FF

initial: 0

DATA

POINTER TO BYTE

Object data

range: 00 00 00 00 … FF FF FF FF

initial: 0 0 0 0

DATALENGTH

USINT

Length of valid data in bytes

range: 1 … 4

Output:

CONFIRM

BOOL

see CIA405.CIA405BASE

ERROR

CIA405.CANOPEN_

KERNEL_ERROR

see CIA405.CIA405BASE

ERRORINFO

CIA405.SDO_ERROR

SDO Abort code

range: 0 … 232-1

initial: 0

Request/Response diagram

rec_emergency.png

The figure above shows the timing diagram for CIA405.SDO_WRITE4. After all data is provided to the inputs, ENABLE is set to TRUE (1). The SDO will be sent, and when the CANopen software reports success to the function block, output CONFIRM will be changed to TRUE (2). The caller will see this and change ENABLE to FALSE (3), which in turn will cause output CONFIRM to change to FALSE (4).

The result of a writing operation is reported (immediately after the writing call or afterwards) in outputs CONFIRM, ERROR and ERRORINFO with a rising edge on either CONFIRM or ERROR. In case of ERROR is equal to 1 (other error), ERRORINFO will give more specified information on the cause. This is especially true for the occurrence of an SDO Abort. Then ERRORINFO contains the Abort code.

It cannot be assumed in general that this function can synchronously complete; rather, it should be possible to have this function continue to be executed while the call to CIA405.SDO_WRITE4 returns and the PLC program is continued. Therefore, the result of a call may be available only several cycles after a rising edge has been applied to ENABLE.