SDO_READ4 (FB)¶
FUNCTION_BLOCK SDO_READ4 EXTENDS CiA405Base
This function block is used for reading a specific object from object dictionary of a DEVICE
.
Up to 4 bytes can be read. Data is written to an ARRAY OF BYTE
.
If more than 4 bytes should be read please use SDO_READ.
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 errorCiA405Base
ERROR
CANOPEN_KERNEL_ERROR.CANOPEN_KERNEL_NO_ERROR
Error code: see CANOPEN_KERNEL_ERROR for further details
CiA405Base
Input
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
Output
DATA
ARRAY [1..4] OF BYTE
Array of Byte the data is written to. Data is in CANopen Byte Order (= Little Endian).
DATALENGTH
USINT
Amount of data in bytes written to
DATA
ERRORINFO
contains abort code in little endian in case of
ERROR
is CANOPEN_KERNEL_ERROR.CANOPEN_KERNEL_OTHER_ERROR