ECATReadSdo

PLCopen motion icon Pipe Network motion icon

 Function Block - Reads a 32-bit word from I/O nodes using a CANopen SDO read command.

Inputs

Input

Data Type

Range

Unit

Default

Description

Execute

BOOL

FALSE, TRUE

N/A

No default

On the rising edge of Execute, an SDO read command is issued.

  • The function block only handles one SDO command at a time.
  • If Execute is toggled quickly so that another rising edge occurs before the SDO command has completed, the function block does not issue a second SDO command.

Index

INT

No range

N/A

No default

The object directory index of the data to be read.

See:

  • Communication SDOs.
  • Manufacturer specific SDOs.
  • Profile specific SDOs.

To read/write an SDO object with an index greater than 16#7FFF (32767), the value must be entered in this form:
any_to_int(index # in hex format).

Example: any_to_int(16#8321).

SubIndex

SINT

No range

N/A

No default

The sub-index of the object directory variable to be read.

See:

  • Communication SDOs.
  • Manufacturer specific SDOs.
  • Profile specific SDOs.

To read/write an SDO object with an index greater than 16#7FFF (32767), the value must be entered in this form:
any_to_int(index # in hex format).

Example: any_to_int(16#8321).

Size

SINT

1 to 4

N/A

No default

The size (i.e., number of bytes) to read.

DeviceAddress

INT

-32768 to +32767

N/A

No default

The EtherCAT address of the device from which data is read from.

  • The first node usually has the value 1001.
  • The second node usually has the value 1002.

  • Use the members of the EtherCAT structure to specify a device's address to Create Variables.
       

Outputs

Output

Data Type

Range

Unit

Description

Done

BOOL

FALSE, TRUE

N/A

Indicates whether this function block has completed without error.

Error

BOOL

FALSE, TRUE

N/A

Indicates whether this function block has completed with error.

ErrorID

DINT

No range

N/A

The SDO call error result, if Error is TRUE.

  • See Error Codes.
  • Upon success, Error is set to 0 (zero).

Value

DINT

No range

N/A

The value of the object directory variable being read.

Value is only set when an SDO read command has successfully completed.

Remarks

Notes

  • This function block uses and reserves the EtherCAT SDO Channel.
  • The SDO Channel remains reserved until the done output is TRUE.
  • This FB should be called at each cycle until either the Done or Error output is TRUE.
    • If it is not called at each cycle, the rest of SDO communication (e.g., the AKD GUI Views) is blocked.
  • Using this FB in SFC P0 or P1 steps is not recommended because these steps are executed only once.
  • If this FB is used in P0 or P1, then it must be used in an SFC N step to ensure the FB completes.

State Diagram

Figure 1: ECATReadSDO State Diagram

Figure 2: ECATReadSdo

Error Codes

FBD Language Example

FFLD Language Example

IL Language Example

Not available.

ST Language Example

(* Read PL.KP on first AKD Drive on EtherCAT network *)
Inst_ECATReadSdo(TRUE, 16#3542, 0, 4, 1001 ); IF Inst_ECATReadSdo.Done OR Inst_ECATReadSdo.Error THEN    Inst_ECATReadSdo(FALSE, 16#3542, 0, 4, 1001 );
   PositionProportionalGain := Inst_ECATReadSdo.Value; END_IF;

See Also